Kompiler IBM XL C/C++: periksa mode kompiler menggunakan direktif praprosesor

Saya mencoba mengkompilasi contoh file c++ test.cpp menggunakan kompiler IBM xlC pada sistem AIX. File harus dikompilasi dalam mode 32-bit dan 64-bit. Saya menggunakan perintah berikut untuk mengkompilasinya di kedua mode:

xlC test.cpp (mode kompiler default adalah 32-bit)

xlC -q64 test.cpp

Di bawah test.cpp, saya harus printf("Using 32-bit compiler") jika kompilasi untuk 32-bit dan printf("Using 64-bit compiler") jika kompilasi untuk 64-bit.

Bagaimana saya bisa mencapai ini menggunakan kondisi praprosesor? Apakah ada makro yang telah ditentukan sebelumnya untuk kompiler atau arsitektur mesin yang membedakannya?


person Jatin Sanghvi    schedule 27.12.2010    source sumber


Jawaban (1)


di XLC, jika Anda menggunakan tanda -q64, makro __64BIT__ ditentukan.

Langsung dari dokumentasi IBM XL C/C++:

Jika kompiler dipanggil dalam mode 64-bit, makro praprosesor __64BIT__ ditentukan.

person wkl    schedule 27.12.2010
comment
Terima kasih banyak. __64BIT__ #didefinisikan oleh kompiler saya. - person Jatin Sanghvi; 27.12.2010