我有一个int的定义,我的首选名称是这样的
第0步:
typedef int ishida_opcua_array[128];
以后我有一个函数来初始化类型ishida_opcua_array
void ishida_opcua_array_init(ishida_opcua_array array)
{
int i;
for(i = 0; i < 128; i++)
array[i] = -56565;
}
最后;这就是我使用ishida_opcua_array
类型
第1步:
ishida_opcua_array source_array;
第2步:
ishida_opcua_array_init(source_array);
/*
* Then i can do whatever i want with [source_array]
*/
如何使用typedef声明和初始化数组,我希望能够做到
/*
* Define the variable and you are ready to go
* initialization has already been done while creating the variable
*/
ishida_opcua_array already_initialized_array; //already initialzed, ready to use
请注意,在第一步中,我必须首先定义变量,如此
ishida_opcua_array source_array;
然后使用以下函数初始化变量
ishida_opcua_array_init(source_array);
答案 0 :(得分:0)
ishida_opcua_array already_initialized_array = { 1, 2, 3 };
当然,这只会专门初始化前三个成员,其余成员为0;您可以使用宏来生成初始化器:
#define INIT_0 -56565 // well, prefer a better name...
#define INIT_1 INIT_0, INIT_0
#define INIT_2 INIT_1, INIT_1
最多INIT_7
然后
ishida_opcua_array already_initialized_array = { INIT_7 };
不会判断这是否真的比你的功能更好......