c语言循环语句中花括号的作用,c语言中用括号将花括号括起来给变量赋值

您所在的位置:网站首页 2022哈尔滨工业大学科研成果 c语言循环语句中花括号的作用,c语言中用括号将花括号括起来给变量赋值

c语言循环语句中花括号的作用,c语言中用括号将花括号括起来给变量赋值

2022-06-04 15:47| 来源: 网络整理| 查看: 265

c

语⾔循环语句中花括号的作⽤

,c

语⾔中⽤括号将花括号括起

来给变量赋值

#define max(x,y) ({ \

typeof(x) _x = (x);\

typeof(y) _y = (y);\

(void) (&_x == &_y);\

_x > _y ? _x : _y; })

在这个宏中,花括号⾥表达式的值为最后⼀条语句的值,然后⽤⼩括号将⼤括号括起来就可以给其他变量赋值了。当红语句中的最外层⼩括

号不⽤的话,也就是如果这个宏语句改为如下时:

#define max(x,y)  { \

typeof(x) _x = (x);\

typeof(y) _y = (y);\

(void) (&_x == &_y);\

_x > _y ? _x : _y; }

就会出现错误。具体为什么会出现这样的情况本⼈也不是很清楚。但在⽹上看到⼀个这样的介绍:

gcc的扩展⽤法,标准C++不⽀持。

它相当于是扩展了primary-expression

primary-expression:

identifier

constant

string-literal

( expression )

GNU extensions:

primary-expression:

__func__

(treated as a keyword in GNU C)

__FUNCTION__

__PRETTY_FUNCTION__

( compound-statement )

// compound-statement 就是花括号语句

__builtin_va_arg ( assignment-expression , type-name )

__builtin_offsetof ( type-name , offsetof-member-designator )

__builtin_choose_expr ( assignment-expression ,

assignment-expression ,



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3