Wenn ich es habe:
#define MAXLINE 5000
Welcher Typ ist unter MAXLINE zu verstehen? Sollte ich annehmen, dass es sich um eine int
? Kann ich das irgendwie testen?
Wie kann man im Allgemeinen die Art der #define
Variable?
Wenn ich es habe:
#define MAXLINE 5000
Welcher Typ ist unter MAXLINE zu verstehen? Sollte ich annehmen, dass es sich um eine int
? Kann ich das irgendwie testen?
Wie kann man im Allgemeinen die Art der #define
Variable?
Wir nennen dieses Makro oder Präprozessor, das zum Ersetzen von Quelldateiinhalten verwendet wird. Lesen Sie dies: https://en.wikipedia.org/wiki/C_macro
Ja, Sie können davon ausgehen, dass es sich um eine int
.
Nun, eigentlich sind alle anderen Antworten richtig. Es ist nicht C, es ist nur eine Direktive, die den Präprozessor anweist, einige textuelle Ersetzungen vorzunehmen, und als solche hat sie keinen Typ. Wie auch immer, wenn Sie nicht irgendwelche (wie der ##-Präprozessor-Trick), werden Sie typischerweise verwenden MAXLINE
wie eine Art Konstante, und der Präprozessor ersetzt ihn durch 5000
was in der Tat eine explizite Konstante ist. Und Konstanten haben einen Typ: 5000
ist ein int
. Eine Konstante, die als dezimale Ganzzahl geschrieben, ohne Suffix (wie U oder L), wird vom der Compiler als eine int
, long int
o unsigned long int
der erste dieser Typen, der passt.
Aber das hat natürlich nichts mit dem Präprozessor zu tun. Sie könnten Ihre Frage umschreiben in "Was ist der Typ von 5000
?", ohne dass #define
.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.