2010-10-18 16 views
10

unix kullanarak basit bir C++ programını yeniden yazılmış bir ad olarak yeniden yazdım. Ama program derleme başarısız oldu. Ben unix1 eşit önceden tanımlanmış makro olduğunu söyleyerek bana yardımcı bu web sitesine var internette bir sürü arama yaptıktan sonraC++ önişlemcisi

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

.

Önceden tanımlanmış tüm makroların listesini bilmek istiyorum. Sen GNU ön işlemci cpp kullanarak tüm ön tanımlı makro listeleyebilirsiniz

+5

Öntanımlı makro ** küçük harf **? Garip görünüyor: o – ereOn

+0

Bunun yerine, bir IDE kullanıyorsanız, görüntülenen makronun rengini kolayca tanımlanabilir biri olarak ayarlayabilirsiniz. Görsel stüdyo var. –

cevap

22

: Ayrıca

cpp -dM file.cpp 

makrolar unix gibi linux standart olmayan unutmayın ve -ansi derleme bayrağını olarak kullanarak bunları devre dışı bırakabilirsiniz :

g++ -ansi file.cpp 

Ve tüm standart önceden tanımlanmış makroları listesini almak için de cpp ile -ansi bayrağını kullanabilirsiniz:

cpp -dM -ansi file.cpp 
1

Bunu her potansiyel platformda kullanılabilir için soruyorsun gibi bir liste var sanmıyorum bakın. Daha fazla bilgi için Pre-defined macros'u görmek isteyebilirsiniz. 'Gcc -dM' Linux üzerinde çalışacak.

1
$ uname 
Linux 

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