将初始值设置为 c 中结构的字段? [复制]
Posted
技术标签:
【中文标题】将初始值设置为 c 中结构的字段? [复制]【英文标题】:Set initial values to fields of a struct in c ? [duplicate] 【发布时间】:2012-07-26 20:12:06 【问题描述】:可能重复:How to initialize a struct in ANSI C
我的代码中有一个全局变量带有初始值,它们是:
int init = 0;
int flag = FALSE;
sem_t *mutex;
char * ptr1 = NULL;
char * ptr2 = NULL;
int status1 = -10;
int status2 = -10;
int semaphoreFlag = FALSE;
相反,我决定添加一个结构:
struct PipeShm
int init;
int flag;
sem_t *mutex;
char * ptr1;
char * ptr2;
int status1;
int status2;
int semaphoreFlag;
;
但是,我无法为结构的字段设置初始值,就像我在 变量是全局变量。
我想通常的方法是使用void init()
方法
这会将结构的值设置为请求的值......但我正在寻找其他东西......有什么办法吗?
谢谢
【问题讨论】:
【参考方案1】:除了@DCoder 建议的解决方案之外,您还可以使用该结构实例化和初始化一个变量,如下所示:
struct PipeShm
int init;
int flag;
sem_t *mutex;
char * ptr1;
char * ptr2;
int status1;
int status2;
int semaphoreFlag;
defaults =
.init = 0,
.flag = 0,
.mutex = NULL,
.ptr1 = NULL,
.ptr2 = NULL,
.status1 = 0,
.status2 = 0,
.semaphoreFlag = 0
;
【讨论】:
以上是关于将初始值设置为 c 中结构的字段? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我想将初始值设置为也设置为自动增量选项的主键,例如它从 mysql 中的值 7899 开始? [复制]