Während mit einem Kollegen von mir gesprochen, sagten sie, dass:Zugriff auf ein statisches Out of Scope undefiniertes Verhalten?
foo() { int *p; { int x = 5; p = &x; } int y = *p; }
weil nicht definiertes Verhalten schafft Lebensdauer und den Anwendungsbereich Regeln halten nicht angeben. Jedoch
:
foo() { int *p; { static int x = 5; p = &x; } int y = *p; }
ist nicht undefiniert! Sie haben Probleme mit dem "indirekten Scoping".
Die Verwendung der Terminologie klingt nicht korrekt.
Ich weiß, dass statische hat nichts mit Scoping zu tun.
Stimmt es, dass der zweite Fall ein definiertes Verhalten hat?
Kommentare sind nicht für längere Diskussion; Diese Konversation wurde [in den Chat verschoben] (http://chat.stackoverflow.com/rooms/114724/discussion-on-question-by-trevor-hickey-is-accessing-a-static-out-of-scope- undef). –