template <int T>
void aFunc(){}
int main()
{
int anArray[45-32];
switch(4)
{
case 4<45:
break;
}
aFunc<4*3/7&8 == 45 - 5>();
}
Run Code Online (Sandbox Code Playgroud)
所以这一切都在VC++ 2005中编译
这个标准?如果是这样,条件运算符返回什么?0和1?有限制吗?
以及最让我感兴趣的东西,你能用宏来做吗?定义?
编辑:
进一步详细说明预处理器位:
#define STRINGAFY(n) #n
#define STRINGAFY_2(n) STRINGAFY(n)
#define SOME_RANDOM_MACRO(n) n
printf("%s", STRINGAFY(1)); //prints out "1"
printf("%s", STRINGAFY(SOME_RANDOM_MACRO(1))); //prints out "SOME_RANDOM_MACRO(1)"
printf("%s", STRINGAFY_2(SOME_RANDOM_MACRO(1))); //causes SOME_RANDOM_MACRO to be evaluated and prints out "1"
printf("%s", STRINGAFY_2(1+1)); // doesn't evaluate and print "2", prints "1+1" :(
Run Code Online (Sandbox Code Playgroud)