[英]How to check (via the preprocessor) if a C source file is being compiled as C++ code
問題標題應該說明一切,但這里有一個我正在尋找的東西的例子:
#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。
(我很驚訝我在某個地方找不到副本。如果其他人可以找到一個,請隨意重定向我並將其作為一個騙局關閉。)
#ifndef __cplusplus
如果我沒記錯的話。
標識符為__cplusplus
#ifdef __cplusplus
#error NO C++ PLEASE
#endif
#ifdef __cplusplus
有一些非常古老的編譯器(早期版本的cfront和幾個端口),它是c_pluplus
,IIRC。
#ifdef __cplusplus
您要查找的標識符是__cplusplus
,可以像這樣使用:
#ifdef __cplusplus
// Code being compiled as C++.
#endif
#ifdef __cplusplus
我認為文件擴展也很重要,如果給C ++編譯器一個.c文件,它會將它編譯為C代碼。 我沒有什么可以支持的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.