012
28.08.2003, 13:25 Uhr
virtual
Sexiest Bit alive (Operator)
|
@Windalf Ich schreibe viel, wenn der Tag lang ist ;D Mit impliziten Deklarationen verhält es sich so: In C99 ein großes NoNo. In veralteten Standards geht das:
Wenn Du eine Funktion benutzt, die nicht deklariert ist, dann wird als Rückgabewert int angenommen und als Typ für die parameter der, den das entsprechende Argument hat:
C++: |
char* x; int* y; f(x,y);
|
Bedeutet - wenn f nicht deklariert wurde - daß der Compiler fortan davon ausgeht, daß f so deklariert ist:
Nun ist bei main der Spezialfall, daß es nichta ufgerufen wurde, Wen Du nun
schreibst, Glaubt der Compiler zunächstmal, daß es ausgeschrieben ein
C++: |
int main(int a, int b)
|
Sein würde, weil hier die Regel übernommen wird, daß Variablen nach int defaulten:
C++: |
static i; const j; register k; auto l;
|
sind auch alle (nach <C99) ints.
Bei Beefy findest Du öfters folgende Sequenz:
C++: |
main(a,s)char**s;{...
|
Also Extremgolfer versucht er sich darum zudrücken, daß man nicht schreiben darf:
(geht nicht, weil entweder alle oder keine der Parameter fehlende Typen haben müssen). Daher benutzt er eine Schreibweise, die bereits in C89 als vermeidungswürdig eingestuft wurde. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |