gpt4 book ai didi

c - 在编译时初始化数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:05 25 4
gpt4 key购买 nike

foo 是一个必须初始化的全局整数数组。如果将来我将 SIZE 更改为 6,那么我将不得不手动将两个新的 INIT_VALUE 项添加到初始化列表中。当SIZE的值改变时,是否有宏或其他东西可以用来在编译时自动修改初始化列表?

#define SIZE 4
#define INIT_VALUE 101

/* global variable that must be initialized */
int foo[SIZE] = {INIT_VALUE,
INIT_VALUE,
INIT_VALUE,
INIT_VALUE};

最佳答案

如果这个 INIT_VALUE 不为 0,则无法按照您提到的方式初始化数组(以支持未知元素)。我认为甚至没有这样的选项可以使用宏来实现它,可能正确的方法是循环初始化(在函数中)数组(如果您的值 memset 也无济于事看起来不像 0xYXYXYXYX(所有字节都相同))

关于c - 在编译时初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com