問題標題應該說這一切,但這裏有一個例子什麼樣的事情我在尋找:如何檢查(通過預處理器)如果C源文件被編譯爲C++代碼
#ifndef THE_IDENTIFIER_THAT_WOULD_INDICATE_BEING_COMPILED_AS_CPLUSPLUS
/*
* Example of something that would matter.
*/
typedef enum _bool bool;
enum _bool { false, true };
#endif
什麼是標識符?這是嚴重的竊聽我,因爲我知道我看過以前的代碼。順便說一下,我正在使用GCC。
(我很驚訝,我不能在SO找到重複的地方。如果有人能找到一個,隨意重定向我和關閉這個作爲重複數據刪除。)
這'__cplusplus'。該宏由C++編譯器定義。重複從:http://stackoverflow.com/questions/3858308/using-c-preprocessor-to-determine-compilation-environment – birryree 2010-11-10 21:27:45
順便說一句:C99添加了一個名爲'_Bool'的本地布爾類型,別名爲'布爾',如果你包括'' –
Christoph
2010-11-10 21:49:31
另請參見[預處理指令來測試這是C還是C++](http://stackoverflow.com/questions/12548490/preprocessor-directive-to-test-if-this-is-c-or-c )瞭解'extern「C」'和一些處理方法。 – 2012-09-23 06:43:06