Warum (und Wann) brauche ich Klammern nach sizeof?

Die unten nicht kompiliert werden:

typedef int arr[10];
int main(void) {
    return sizeof arr;
}

sizeof.c:3: error: expected expression before arr

aber wenn ich es ändern zu

sizeof(arr);

alles in Ordnung ist. Warum?

  • sizeof als Betreiber ist nicht verfügbar in ansi-c
  • mein Exemplar von K&R (die früheste Beschreibung der C-Sprache, die ich habe) ist sehr weit Weg und ich kann nicht überprüfen Sie es jetzt, aber ich bin mir 110% sicher, das es beschreibt sizeof grundsätzlich der gleichen Weise C99-Standard heute. sizeof verfügbar ist, da vor C standardisiert wurde von ANSI im Jahr 1989.
  • Sorry, mein Fehler..
InformationsquelleAutor blueshift | 2011-05-05
Schreibe einen Kommentar