2010-10-18 23 views
10

Avrei riscritto un semplice programma C++ utilizzando unix come nome di variabile. Ma la compilazione del programma è fallita.preprocessore C++

#include <iostream> 
int main() { 
     int unix = 1; 
     return 0; 
} 

Dopo aver cercato molto su internet ho avuto modo di questo sito che mi ha aiutato dicendo che unix è macro predefinita pari a 1.

Desidero conoscere l'elenco di tutte le macro predefinite.

+5

Macro predefinita in ** minuscolo **? Sembra strano: o – ereOn

+0

Piuttosto, se stai usando un IDE, puoi impostare il colore della macro visualizzata come facilmente identificabile. Lo studio visivo ce l'ha. –

risposta

22

Si possono elencare tutte le macro predefinite utilizzando il preprocessore GNU cpp come:

cpp -dM file.cpp 

anche notare che le macro come unix, linux sono non standard e si possono disattivare utilizzando il flag -ansi compilation come :

g++ -ansi file.cpp 

E si può utilizzare il flag -ansi con cpp anche per ottenere l'elenco di tutte le macro predefinite standard:

cpp -dM -ansi file.cpp 
1

Io non credo che ci sia una tale lista come si sta chiedendo per questo è disponibile in tutte le piattaforme potenziale. Si consiglia di vedere Pre-defined macros per ulteriori informazioni. 'Gcc -dM' funzionerà su Linux.

1
$ uname 
Linux 

$ cpp -dM <<<'' | grep unix 
#define __unix__ 1 
#define __unix 1 
#define unix 1