Зашто на powerpc платформи овај код завршава у бесконачној петљи:
int main() { int bar = 0; char foo; for (foo = 7; foo >= 0; foo--) { bar++; } return bar; }
Одговор:
зато што је на powerpc платформи char не-негативан целобројни тип (unsigned char)
Случајне мисли о програмирању.
int main() { int bar = 0; char foo; for (foo = 7; foo >= 0; foo--) { bar++; } return bar; }
#include <assert.h>
#include <string.h>
int mojstrlen(const char * const p)
{
assert(p != NULL);
return strlen(p);
}
int mojstrlen(const char *const p)
{
if (p == NULL)
return 0;
return strlen(p);
}
int mojstrlen(const char * const p)
{
assert(p != NULL && !!"Pokazivac 'p' ne sme biti NULL");
return strlen(p);
}
/* Deklaracije. */
int f1(char *tekst);
int f2(const char *tekst);
int f3(char const *tekst);
int f4(const char *const tekst);
int f5(char *const tekst);
/* Jednostavan primer const kao
modifikatora metoda. */
#include <string>
#include <iostream>
using std::string;
using std::cout;
using std::endl;
class Zaposleni
{
public:
Zaposleni(const string &ime)
: _ime(ime) {}
virtual ~Zaposleni() {}
string ime()
{
cout << "Pozvana ne-konst metoda." << endl;
return _ime;
}
string ime() const
{
cout << "Pozvana konst metoda." << endl;
return _ime;
}
private:
string _ime;
};
void stampajZaposleni(const Zaposleni &zap)
{
cout << "U funkciji stampajZaposleni" << endl;
cout << zap.ime() << endl;
}
int main(int argc, char* argv[])
{
Zaposleni zap("Mika");
cout << "Poziv preko konst deklarisane promenljive." << endl;
stampajZaposleni(zap);
cout << "Sada poziv preko ne-konst deklarisane promenljive: " << endl;
cout << zap.ime() << endl;
return 0;
}