2016-11-19 1 views
1

Wenn ich dieses Programm schreiben -Variable namens ‚Unix‘ hat den Wert 1

main(){printf("%d",unix);} 

diese kompiliert korrekt und druckt 1, obwohl ich ein ‚Unix nicht deklarierten‘ oder ähnliche Fehler erwartet hatte. Aber wenn ich

main(){printf("%d",blah);} 

Dies gibt fehler-

error: 'blah' undeclared (first use in this function) 

wie erwartet in this- ändern.

Also, warum unix erzeugt keinen Fehler, und warum ist es Wert 1? Ich habe versucht, zu googeln, aber nichts kam auf.

+0

Präprozessor definieren –

+2

Siehe http://stackoverflow.com/questions/3770322/is-unix-restricted-Schlüsselwort-in-c – acraig5075

Antwort

1
#undef unix 
int main(void) 
{printf("%d\n",unix); 
return 0; 
} 

Fails zu kompilieren (auch nach #include <stdio.h>, so muss es einige eingebaute Präprozessor ~#define Compiler ausgegeben werden:

unix.c: In function ‘main’: 
unix.c:4:16: error: ‘unix’ undeclared (first use in this function) 
{printf("%d\n",unix); 
Verwandte Themen