我有结构
struct ABC {
int a;
int b;
}
和它的数组
struct ABC xyz[100];
我想初始化它 a = 10 和 b = 20;对于所有数组元素。
哪种方法更好?
虽然没有特别优雅的方式初始化在C语言中像这样的大数组是可能的。你do not必须在运行时执行此操作,正如一些答案错误地声称的那样。你呢不想要要在运行时执行此操作,假设数组是const
?
我的方法是定义一些宏:
struct ABC {
int a;
int b;
};
#define ABC_INIT_100 ABC_INIT_50 ABC_INIT_50
#define ABC_INIT_50 ABC_INIT_10 ABC_INIT_10 ABC_INIT_10 ABC_INIT_10 ABC_INIT_10
#define ABC_INIT_10 ABC_INIT_2 ABC_INIT_2 ABC_INIT_2 ABC_INIT_2 ABC_INIT_2
#define ABC_INIT_2 ABC_INIT_1 ABC_INIT_1
#define ABC_INIT_1 {10, 20},
int main()
{
struct ABC xyz[100] =
{
ABC_INIT_100
};
}
请注意,此类宏可以以任何方式组合,以进行任意数量的初始化。例如:
#define ABC_INIT_152 ABC_INIT_100 ABC_INIT_50 ABC_INIT_2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)