哪些现代编译器支持Gnu语句表达式(C和C++语言)。我需要使用什么版本的语句表达式?编译器对GNU语句表达式的支持
声明表达是不便等({ code; code; retval })
:
int b=56;
int c= ({int a; a=sin(b); a})
我已经知道一些这样的编译器:
- GCC> = 3
- 锵/ LLVM> =?
- 英特尔C++编译> = 6.0(Linux版本的,check page 4;位limited)
- 太阳工作室> = 12(New Language Extensions)
- IBM XL z/OS的(marked as IBM extension)
- Open64(因为它使用鱼鹰-GCC前端)
这个编译器好像不支持这样(我不确定):
- MS Visual C++
PS。一些C/C++编译器中列出here但我感兴趣的只是成熟的编译器,被广泛使用(例如不是TCC或涡轮C)
但[页](http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/cpp/lin/bldaps_cls/ common/bldaps_gcc_compat_comm.htm)表示“*语句表达式被支持,除了以下内容被禁止:*”..和[this,page4](http://scc.ustc.edu.cn/zlsc/lenovo_1800/200910 /W020100308600680463493.pdf)说这是真正的sinc e英特尔C++编译器6.0版 – osgx
您是对的。我会做出更好的回答。 – lrineau