Adib schrieb:
> Ich dachte mal im C ist eine nicht deklarierte Funktion.
> Int foo(void)
Im Bezug auf den Return-Typ stimmt das auch. Der ist in dem Fall immer
int. Aber wenn ich Paramter übergebe, dann geht der Compiler davon aus,
daß die Funktion genau diese Paramter auch haben will.
Das ist z.B. auch der Grund, warum empfohlen wird, bei malloc keinen
Cast zu machen in der Art:
1 | meintyp* p = (meintyp*)malloc(sizeof *p);
|
Dieser Cast ist in C nicht nötig, und wenn man vergessen hat, den Header
für malloc zu includen, geht der Compiler davon aus, daß malloc einen
int zurückliefert, was natürlich Unsinn ist. Normalerweise käme da eine
Warnung, aber der Cast unterdrückt diese.