当前位置:  开发笔记 > 编程语言 > 正文

C/C++中的括号内的代码块是否合法,MSCL可以编译它吗?

如何解决《C/C++中的括号内的代码块是否合法,MSCL可以编译它吗?》经验,为你挑选了1个好方法。

我有以下代码:

int x;
x = ({ 1; 2; 3; });
printf("%d\n", x); // should be 3

(如果你很好奇为什么我会编写那样令人厌恶的代码.答案是我不是.我正在编写一个输出C代码的生成器,并且这样的语句会使事情变得容易多了.)

该代码编译并在Apple LLVM版本7.0.2上运行(当然会对未使用的代码发出警告)但在MSCL 10.0和14.0中失败(错误C2059:语法错误:'{').

我的问题是:1)是否有这种代码的名称(-abuse)?2)在任何C/C++标准中是否合法?3)有没有办法让MSCL接受它?



1> Oleg Andriya..:

由于我一直使用GCC,所以对MSCL部分问题一无所知.在海湾合作委员会:

1)这称为复合语句表达式 ;

2)这是非标准的GCC扩展.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有