Betrachten
Code: Select all
struct s
{
int x;
int y[sizeof x];
};
In C ++ Das X < /code> hat eine Klasse (und eine Struktur ist eine Klasse) Umfang. Wie ich verstehe, sucht Sizeof im Klassenbereich zuerst x . C: C23 (N3299.pdf, 6.5.2p2) hat die folgende Einschränkung (Hervorhebung hinzugefügt): < /p>
Die Identifikatorin in einem Identifikator -Primärxpression muss eine sichtbare Deklaration als eine gewöhnliche Identifikatorin, die ein Objekt einteilen. Die Einschränkung wird den obigen Code ungültig (als C-Code kompiliert), da x < /code> (zumindest) eine nicht gewöhnliche Kennung ist. einer Struktur in einem primären Ausdruck?