c语言如何对结构体某一成员初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言如何对结构体某一成员初始化相关的知识,希望对你有一定的参考价值。

结构体与类一样可以定义一个构造函数。
如下:
struct s
s()
a=0;

int a;

每次声明一个结构体变量时都会调用结构体的构造函数,在构造函数里面添加初始化语句就可以了来自:求助得到的回答
参考技术A 有以下几种方法:
1 使用构造函数。
在C++中,struct可以当做类(class)来使用,同样支持成员函数,构造函数,析构函数。所以可以写对应的构造函数,实现自由初始化。

2 定义时,按照成员变量位置,写初始化列表。
如struct test中有成员int a, char b, 和float c,那么初始化一个变量可以写作
struct test t1 = 100, 'A', 1.23;
当初始化列表不全时,省略部分自动初始化为0,即
struct test t1 = 100, 'A';

struct test t1 = 100, 'A', 0;
等效。

3 部分编译器支持显示成员变量初始化,如g++。

struct test t1 = .b= 'A', .a=100;
没有涉及到的变量初始化为0.该种方式不是所有编译器都支持,当代码有跨平台需求时需谨慎使用。

以上是关于c语言如何对结构体某一成员初始化的主要内容,如果未能解决你的问题,请参考以下文章

获取结构体某成员偏移

c复习过程随笔九

C语言 结构体声明中const成员如何初始化

如何对结构体变量进行初始化?

关于C语言结构体构造函数初始化的问题?

C语言结构体和共用体_07