द्वारा क्लैंग, जीसीसी और टीसीसी को पहचानना मैं clang
, gcc
, और tcc
का उपयोग करता हूं, और मैं एक सामान्य शीर्षलेख में तीनों के बीच अंतर करने में सक्षम होना चाहता हूं।कार्यान्वयन-परिभाषित मैक्रोज़
उनके मैक्रो डंप के आधार पर, मुझे उम्मीद है कि __clang__
मैक्रो की उपस्थिति अनन्य रूप से क्लैंग की पहचान करेगी।
मैं tcc
($compiler -x c -E -dM /dev/null
के साथ मैक्रो डंप प्राप्त करने में असमर्थ हूं) इसके मामले में काम नहीं करता है)।
मैक्रो (यदि कोई है) क्या है जो विशिष्ट रूप से जीसीसी (और संभवतः टीसीसी) की पहचान करेगा?
शायद '__GNUC__'? –
जीसीसी के लिए डुप्लिकेट हैं, आपको वास्तव में केवल टीसीसी के बारे में पूछना चाहिए। – 2501
@ केरेकस्क बी क्लैंग '__GNUC__' भी परिभाषित करता है। – PSkocik