【发布时间】:2026-02-01 16:10:01
【问题描述】:
假设我有一个结构:
struct foo{
int field_1;
int field_2;
};
说有一个数组:
foo bar[1000];
我知道你可以这样初始化数组:
foo bar[]={
{ .field_1= 10, field_2 = 20 },
{ .field_1= 30, field_2 = 40 },
};
当数组有 1000 个元素时,这根本不实用。我需要将所有元素初始化为一个特定的整数(在编译时),但看起来除非数组非常小,否则实际上不可能这样做。这似乎是一件必不可少的事情,但我找不到解决方案。
谢谢。
【问题讨论】:
-
你可以使用循环。
-
我应该提到我想在编译时这样做。
-
在编译时没有很多选项。将初始化放在不同的文件中并
#include它至少您不需要查看它。 -
您可以编写一个输出C源代码的程序来初始化整个数组。然后将该源代码包含到您的程序中。
-
你可以把它作为全局变量或静态变量,因为它们是在编译时初始化的。