我今天遇到了一个非常奇怪的问题。让我们考虑以下代码:
int llex(){
cout<<"enter 1"<<endl;
char32_t c = U'(';
cout<<(c==U'#')<<endl;
switch(c){
case U'#':
cout<<"enter 2"<<endl;
return 5;
default:
break;
}
}
int main( int argc, char** argv)
{
cout<<"enter 1"<<endl;
char32_t c = U'(';
cout<<(c==U'#')<<endl;
switch(c){
case U'#':
cout<<"enter 2"<<endl;
return 5;
default:
break;
}
cout << "------------" << endl;
llex();
}
输出是:
enter 1
0
------------
enter 1
0
enter 2
请注意 main 中的代码与llex
函数中的代码相同。为什么他们输出不同的结果?(我在 clang 上使用 C++11)。