我的代码中的全局变量带有初始值,它们是:
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;
};
但是,我不能像结果那样设置struct的字段的初始值 变量是全局变量。
我想通常的方法是使用void init()
方法
这会将结构的值设置为所请求的值......但我正在寻找其他的东西......有什么方法可以解决这个问题吗?
谢谢
答案 0 :(得分: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
};