Linux下C结构体初始化[总结]

  • 时间:
  • 浏览:0

1、前言

  教科书上讲C语言形态学 体初始化是按照顺序措施来讲的,不都能不能涉及到乱序的措施。顺序初始化struct需要要按照成员的顺序进行,缺一不可,就让 形态学 体比较大,很容易突然再次出现错误,就让 表现形式不直观,不都能不能一眼看出各个struct各个数据成员的值。

  今天在公司看一起去去事写的代码,代码中用到了struct,初始化有三个 struct用的是乱序格式,如下代码所示:

4、测试线程

   通常初始化有三个 形态学 体的措施是按序初始化,形如:data_t data={10,20}。感觉很好奇,如是上网百度一下,发现linux下struct初始化都能不能采用顺序和乱序有两种措施,而乱序又有有两种不同的形式。本文总结一下struct有两种初始化措施的优缺点,并给出全版的测试线程。

2、顺序初始化

3、乱序初始化

  乱序初始化是C99标准新加的,比较直观的有两种初始化措施。相比顺序初始化而言,乱序初始化就如其名,成员都能不能不按照顺序初始化,就让 都能不能只初始化要素成员,扩展性较好。linux内核中采用你这些措施初始化struct。

  乱序初始化有有两种措施,有两种是用点(.)符号,有两种是用冒号(:)。措施1是C99标准,措施2是GCC的扩展,强烈建议使用第有两种措施。

测试结果如下图所示: