首页  >  文章  >  后端开发  >  C 中多余的括号有哪些不常见的影响?

C 中多余的括号有哪些不常见的影响?

Susan Sarandon
Susan Sarandon原创
2024-10-24 01:18:29750浏览

What Are the Uncommon Effects of Excess Parentheses in C  ?

具有不同效果的额外括号:

C 中的括号通常不会影响程序含义,除非在不常见的情况下:

参数相关名称查找预防:

括号可以防止函数调用中依赖于参数的名称查找 (ADL)。虽然 fun(arg) 形式通过 ADL 考虑命名空间范围的友元函数,但 (fun)(arg) 不考虑,从而允许精确的函数选择。

逗号运算符启用:

在列表上下文中 (函数参数、初始值设定项列表),逗号运算符仅适用于括号内。 a, (b, c), d 形式的括号启用逗号运算符,而 a, b, c, d 则不启用。

令人烦恼的解析中的歧义解决:

括号可以解决在“令人烦恼的解析”情况下存在歧义,其中构造可以是声明或表达式。通过将函数式类型强制转换在括号中,可以将其清楚地识别为表达式,从而避免解析歧义。

decltype 中的引用推导:

额外的括号会影响 decltype 中推导的引用表达式。如果 decltype(e) 的操作数是未计算的左值,则将其括在括号中 (decltype((e))) 会推导出 const 左值引用 (&)。

预处理器宏错误:

括号可以通过控制宏扩展来防止预处理器宏中的错误。例如,在宏参数周​​围使用括号可以避免运算符优先级问题,而将函数调用括在括号中可以防止不必要的宏替换。

以上是C 中多余的括号有哪些不常见的影响?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn