Pourquoi (et quand) dois-je utiliser des parenthèses après sizeof?

Ci-dessous ne peut pas compiler:

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

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

mais si je l'ai changer pour

sizeof(arr);

tout va bien. Pourquoi?

  • sizeof comme un opérateur n'est pas disponible en ansi-c
  • ma copie de K&R (la première description du langage C que j'ai) est très loin et je ne peux pas le vérifier, mais je suis sûr à 110% il décrit sizeof fondamentalement la même façon Standard C99 ne le fait aujourd'hui. sizeof est disponible depuis avant C a été normalisé par l'ANSI en 1989.
  • Désolé, mon mauvais..
InformationsquelleAutor blueshift | 2011-05-05