63 Stimmen

Typ der #define-Variablen

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?

1voto

shinkou Punkte 5073

Wir nennen dieses Makro oder Präprozessor, das zum Ersetzen von Quelldateiinhalten verwendet wird. Lesen Sie dies: https://en.wikipedia.org/wiki/C_macro

1voto

Edgar Bonet Punkte 3316

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.com

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.

Powered by:

X