Was ist der Zweck einer Deklaration wie int (x); oder int (x) = 10;

Wenn man sich die Grammatik für *declarator*s in §8/4 Sie werden bemerken, dass noptr-declarator kann geschrieben werden als (ptr-declarator), das heißt, es kann geschrieben werden als (declarator-id), die überprüft, Erklärungen wie diejenigen, die in dem Titel. Als eine Angelegenheit von der Tat dieser code kompiliert werden, ohne ein problem:

#include <iostream>
struct A{ int i;};
int (x) = 100;
A (a) = {2};
int main()
{
    std::cout << x << '\n';
    std::cout << a.i << '\n';
}

Aber was ist der Zweck, dass diese Klammern, wenn ein Zeiger auf ein array oder eine Funktion) ist nicht beteiligt an der Erklärung?

  • Vermutlich, weil zu verbieten, Ihnen würde erfordern eine komplexere Grammatik.
  • Das mag eine Erklärung sein. Ich glaube nicht, über diese.
  • Ebenso (42) ist ein Gültiger Ausdruck, obwohl die Klammern sind unnötig.
InformationsquelleAutor Mao | 2014-11-09
Schreibe einen Kommentar