linux C 结构体struct的定义和初始化
2017-02-04 17:00
239 查看
struct 定义:
struct test
{
int a;
long b;
float c;
char d;
char e[];
}tt1,tt2;//对象声明列表紧跟struct定义
struct test tt3,tt4;//单独声明对象列表
//声明一个没结构体名字的结构体
struct
{
int a;
long b;
float c;
char d;
char e[];
}tt1,tt2;
struct初始化:
1,//按顺序初始化
struct test ={1,2,1.23,'h',"gsdhf"};
2,//乱序
struct test=
{
.a=1,
.b=2,
.c=1.23,
.d='h',
.e="gsdhf"
};
注意:
1,如果存在部分成员没初始化,一般值是系统默认值。
2,如果即存在乱序又存在顺序初始化,顺序初始化始终紧跟上一个乱序成员,即该顺序赋值给上一个乱序成员的下一个成员。如:
struct test tt=
{
.c = 18.90,
.b= 2,
0.25
};
0.25的值将付给成员b后的那个成员c,即之前给c赋值18.90将被0.25取代。
当然如果顺序赋值前无乱序赋值,则按struct定义成员的顺序进行赋值,后面的乱序赋值则覆盖前面的顺序赋值。
自定义struct 类型
typedef struct test
{
int a;
long b;
float c;
char d;
char e[];
};
test tt;//test现在是自定义数据类型了,和int,char等数据类型的使用是一样的
tt=
{
.a=1,
.b=2,
.c=1.23,
.d='h',
.e="gsdhf"
};
注意:也可先定义struct test,然后使用语句typedef struct test tt;或者typedef struct test;test tt;来自定义struct数据类型并声明对象。
struct test
{
int a;
long b;
float c;
char d;
char e[];
}tt1,tt2;//对象声明列表紧跟struct定义
struct test tt3,tt4;//单独声明对象列表
//声明一个没结构体名字的结构体
struct
{
int a;
long b;
float c;
char d;
char e[];
}tt1,tt2;
struct初始化:
1,//按顺序初始化
struct test ={1,2,1.23,'h',"gsdhf"};
2,//乱序
struct test=
{
.a=1,
.b=2,
.c=1.23,
.d='h',
.e="gsdhf"
};
注意:
1,如果存在部分成员没初始化,一般值是系统默认值。
2,如果即存在乱序又存在顺序初始化,顺序初始化始终紧跟上一个乱序成员,即该顺序赋值给上一个乱序成员的下一个成员。如:
struct test tt=
{
.c = 18.90,
.b= 2,
0.25
};
0.25的值将付给成员b后的那个成员c,即之前给c赋值18.90将被0.25取代。
当然如果顺序赋值前无乱序赋值,则按struct定义成员的顺序进行赋值,后面的乱序赋值则覆盖前面的顺序赋值。
自定义struct 类型
typedef struct test
{
int a;
long b;
float c;
char d;
char e[];
};
test tt;//test现在是自定义数据类型了,和int,char等数据类型的使用是一样的
tt=
{
.a=1,
.b=2,
.c=1.23,
.d='h',
.e="gsdhf"
};
注意:也可先定义struct test,然后使用语句typedef struct test tt;或者typedef struct test;test tt;来自定义struct数据类型并声明对象。
相关文章推荐
- struct 结构体的定义及初始化问题
- 【Struct(结构体)杂谈之二】名不正则言不顺---Struct(结构体)的声明、定义及初始化
- 【Struct(结构体)杂谈之二】名不正则言不顺---Struct(结构体)的声明、定义及初始化
- 结构体定义 typedef struct 用法详解和用法小结
- 结构体定义 typedef struct 用法详解和用法小结
- 【转载】文件结构体struct file(Linux 2.6.23内核)
- typedef struct和struct定义结构体的区别
- [转载]结构体定义 typedef struct 用法详解和用法小结
- 结构体定义 typedef struct 用法详解和用法小结
- 关于结构体的定义与初始化
- typedef struct和struct定义结构体的区别
- 结构体定义:struct与typedef struct 用法详解和用法小结
- 文件结构体struct file(Linux 2.6.23内核) (转)
- 结构体定义 typedef struct 用法详解和用法小结
- 结构体定义 typedef struct 用法详解
- 结构体struct 成员值初始化
- Linux串口—struct termios结构体
- Linux串口—struct termios结构体
- Linux总线驱动-02: struct bus_type 结构体
- 结构体定义和初始化