我试图在一个setter行的中间进行#ifndef,但是我收到了以下错误提示:“Error 20 error C2014: preprocessor command must start as first nonwhite space”。
我知道这个错误的意思,但我很好奇为什么会这样?这是编译器的选择吗?这背后的原因是什么?这是为了让用户更容易注意到吗?
如果有人想知道代码,请看下面:
我知道这个错误的意思,但我很好奇为什么会这样?这是编译器的选择吗?这背后的原因是什么?这是为了让用户更容易注意到吗?
如果有人想知道代码,请看下面:
inline void SetSomething(int value) { #ifndef XBOX ASSERT(value <= 1); #endif test = value; };
#define
这样的东西,如果没有换行符,预处理器如何知道何时结束#define
替换呢? - cdhowieinline
函数定义不必在单独一行上。 - Keith Thompson