首页 > 代码库 > C99语法之初始化结构体
C99语法之初始化结构体
C99中中结构体初始化也提供了一个比较奇葩的初始化方式:
#include<stdio.h>#include<stdlib.h>struct MyStruct{ int num; float fl; double db; _Bool b;//c99新增的bool类型 1,0}my1 = { .num = 10, .fl = 10.9, .db = 19.8, .b = 0 };//初始化的形式void main(){ printf("%d,%f,%f,%d", my1.num, my1.fl, my1.db, my1.b); struct MyStruct my2 = (struct MyStruct){ .num = 10 };//默认会清零 printf("\n%d,%f,%f,%d", my2.num, my2.fl, my2.db, my2.b); getchar(); //不能用变量直接初始化,需要用结构体初始化的方式直接初始化一个结构体变量 struct MyStruct *p = (struct MyStruct[]) { [0] = { .num = 10, .fl = 10.9, .db = 19.8, .b = 0 }, [1] = { .num = 10 } }; getchar();}
这个方式初始化结构体和 初始化数组那种方式是一样的。因此只是表现形式不一样其实质和原来的初始化是一样的。
by:ECN14
C99语法之初始化结构体
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。