设为首页 加入收藏

TOP

GCC和C99中结构体的标签式初始化语法差异
2017-01-24 08:15:37 】 浏览:258
Tags:GCC C99 结构 标签 初始 语法 差异

GCC很早就支持标签式初始化结构体,标准C则是C99之后才对此进行了支持。两者语法不同,效果相同。


例子:


传统GCC初始化代码:


C99初始化代码:


对于未显式初始化的成员变量,编译器自动进行默认初始化(int类型默认为0,float/double默认为0.0,指针默认为NULL)。


由于GCC标签式初始化结构体特性出现的更早,所以可以推断C99是借鉴了GCC的做法,只是在语法上做了一定的改变。这种语法不一致就会导致一些混乱的情况出现。为了避免这种混乱,GCC正在逐步放弃原来的语法,转而支持C99标准。


在Linux2.6及以后内核源码里已经使用了C99的新式语法。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux内核源码container_of宏及其.. 下一篇用Python将统计数据不存在的记录..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目