__cplusplus
包含并扩展为什么? __cplusplus
是否也始终包含并扩展为数值吗? #if __cplusplus
是否安全?还是我们应该使用该
#ifdef __cplusplus
代替? 最佳答案
是的,它始终会扩展为数值,其含义是所使用的C++标准的版本。根据cppreference page,__cplusplus
宏应扩展为:
#if
和#ifdef
指令之间的区别在于,应使用#ifdef
来检查是否已定义了给定的宏以允许编译一段代码。
另一方面,#if
(#else
,#elif
)伪指令可用于检查是否满足指定条件(就像典型的if条件)。