腾讯 · 高级工程师 (已认证)
分享文章到朋友圈
海报分享
GNU C对ANSI C做了很多扩展,除比较知名的0长度数组、typeof关键字之类的以外,还有一个比较有意思的,那就是圆括号里面套花括号的复合语句。举例如下:
在Linux Kernel代码中,有一个著名的宏:container_of,代码如下
这个宏使用了({s1;s2;})这样的语法,这是GNU C的一个扩展,具体可参考GCC手册,如下:
http://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html#Statement-Exprs
简单点说,圆括号里面可以嵌套花括号,并且整体的值等于最后一个语句的值,比如int i =({int a =3; a;});这个语句执行后,i 就等于3了。
原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本篇,我们看一下 C 语言中的两个输入输出函数: printf() 和 scanf()。
上周写了一篇 20 分钟学会 C 语言与Python的文章——《一万字一篇文20分钟学会C语言和Python,十四年编程经验老鸟传授经验之道》,之后见粉丝转了一...
前两篇文章,我们似乎已经明白为什么,立即执行函数要那样写了,这次为了能更加深入理解,我们来说说圆括号的事。
也许你知道,这是立即执行函数,但为什么这样能立即执行呢?也许是该好好聊聊了!但是,我们先来聊点其他的。
本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面...
今天,我们继续「Rust学习笔记」的探索。我们来谈谈关于「基础概念」的相关知识点。
3.JDK8对于集合操作(引入java.util.stream.Stream,默认方法+函数式接口作为参数+lambda表达式)
2.1 了解输入 在程序编写中,输出是指编写的程序向外发送一个内容。在使用cout进行输出内容显示的时候是指向程序外输出一个内容并且显示;输入则是值用户(我们...
(0415增加简单的反流程混淆功能,满足日常使用需要,不再更新,转向ILSpy,见12点后面) Reflector过期?这可不行!自己动手吧! 看雪上拿到Ref...
some times,你需要用双括号来括住一堆复合语句,看起来怪怪的,但在某些场合你还真只能这么干!
本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名