我知道C 中的Binary Literal是从C 14标准化的。
但是,虽然我修复了std
as c 11
,但它运行良好。因为实际上,我预计会出现错误。以下是我预计会出现错误的代码。
int main(){
int a = 0b1010; // an error is expected
std::cout << a << std::endl;
}
另外,我已经使用以下命令编译并执行了上述档案。
g -std=c 11 -Wall main.cpp -o runfile
./runfile
没有出现预期结果的原因是什么?有什么我做错了吗?
uj5u.com热心网友回复:
早在 C 14 标准化之前,二进制文字就一直是 GCC 中的编译器扩展。您可以编译-pedantic
以警告扩展并将-pedantic-errors
这些特定警告提升为错误:
<source>:3:11: error: binary constants are a C 14 feature or GCC extension
3 | int a = 0b1010; // an error is expected
| ^~~~~~
0 评论