Ich entdeckte etwas Interessantes beim Schreiben von Code. Ich habe ein Makro in meinem Code definiert und versehentlich das Schlüsselwort int
als Variablenname des Parameters dieses Makros verwendet. Der Code funktionierte einwandfrei, aber ich bin ein bisschen überrascht. Ich habe gelesen, dass in C Schlüsselwörter reservierte Wörter sind und nicht als Variablennamen verwendet werden können.Kann der Name eines Makroparameters ein Schlüsselwort sein?
Dies ist mein Code:
#include <stdio.h>
#define PRINT(int) printf("%d",int)
int main()
{
int x=2;
PRINT(x);
return 0;
}
Kann mir jemand erklären, warum ist es in Ordnung zu arbeiten? Ist es nicht wahr, dass Schlüsselwörter reserviert sind und nicht als Variablennamen in C verwendet werden können, oder ist dies eine Ausnahme in C für Makros?
Es bedeutet, ich kann jedes Schlüsselwort in Makro verwenden und es wird gut funktionieren, oder? Ist dieses Ding nur für Makros in C gültig? –
@dark_shadow: Der Präprozessor weiß nichts über C, soweit es das betrifft * sind * keine Schlüsselwörter (also ja, du kannst alles verwenden). Es ist in C und in C++ gültig. – Jon
Danke Jon für die Klärung der Zweifel. –