C 如何在函数外使用for循环创建多个全局变量?
我有一个列表,我想为列表中的每个项目创建一个全局计数器,初始值设置为C 如何在函数外使用for循环创建多个全局变量?,c,C,我有一个列表,我想为列表中的每个项目创建一个全局计数器,初始值设置为1。我原以为我会使用for循环来实现这一点(我的实际列表比下面的示例大得多),但我刚刚意识到for循环在函数之外不起作用。我怎样才能让下面的代码工作 char* list[] = {"A", "B", "C"}; for (int i = 0; i < sizeof(list); i++){ int counter[i] = 1; } } char*list[]={“A”、“B”、“C”}; 对于(in
1
。我原以为我会使用for
循环来实现这一点(我的实际列表比下面的示例大得多),但我刚刚意识到for
循环在函数之外不起作用。我怎样才能让下面的代码工作
char* list[] = {"A", "B", "C"};
for (int i = 0; i < sizeof(list); i++){
int counter[i] = 1;
}
}
char*list[]={“A”、“B”、“C”};
对于(int i=0;i
C没有在函数之外运行此类初始化代码的工具。由于文件范围内静态变量的初始值设定项必须是常量表达式,因此有两个选项:
#include "my_init_list.h"
char* list[] = {"A", "B", "C", /* However many more */};
int counter[] = COUNTERS_INITIALIZER;
它将解析列表的初始值设定项
,并输出文件my_init_list.h
,该文件将包含扩展为{1,1,…,1}
的宏计数器。如果将脚本作为构建过程中的一个步骤来运行,那么就应该这样做
main
执行的内容)C没有在函数之外运行此类初始化代码的工具。由于文件范围内静态变量的初始值设定项必须是常量表达式,因此有两个选项:
#include "my_init_list.h"
char* list[] = {"A", "B", "C", /* However many more */};
int counter[] = COUNTERS_INITIALIZER;
它将解析列表的初始值设定项
,并输出文件my_init_list.h
,该文件将包含扩展为{1,1,…,1}
的宏计数器。如果将脚本作为构建过程中的一个步骤来运行,那么就应该这样做
main
执行的内容)这就是你想要的吗
char* list[] = {"A", "B", "C"};
int counter[] = {1, 1, 1};
只需全局声明它们并初始化计数器
,就像初始化列表一样
还可以全局声明计数器
,然后在main()
或任何带有for
循环的地方初始化它:
char* list[] = {"A", "B", "C"};
int counter[3];
int main(void) {
for (int i = 0; i < sizeof(list) / sizeof(*list); i++) {
counter[i] = 1;
}
}
请注意,您不能简单地使用sizeof(list)
…这将返回list
已分配的内存量。您需要将sizeof(list)
除以每个元素的大小,sizeof(*list)
,以获得元素的数量这就是您想要的吗
char* list[] = {"A", "B", "C"};
int counter[] = {1, 1, 1};
只需全局声明它们并初始化计数器
,就像初始化列表一样
还可以全局声明计数器
,然后在main()
或任何带有for
循环的地方初始化它:
char* list[] = {"A", "B", "C"};
int counter[3];
int main(void) {
for (int i = 0; i < sizeof(list) / sizeof(*list); i++) {
counter[i] = 1;
}
}
请注意,您不能简单地使用sizeof(list)
…这将返回list
已分配的内存量。您需要将sizeof(list)
除以每个元素的大小,sizeof(*list)
,以获得初始化为0的元素数。您所需要做的就是声明变量。列表在函数中?对不起,我使用了0作为一个不好的示例。我已将其更改为1。然后需要将循环放入函数中,例如在main
的顶部,或在main
顶部调用的单独函数中。声明仍然可以在外部执行:int counter[sizeof(list)/sizeof(list[0])代码>请举例说明您打算如何使用计数器。您将要实现许多代码段,每个代码段对其中一个计数器的使用方式不同<代码>计数器[A]+
<代码>计数器B++
<代码>计数器['A']+
<代码>C++<代码>x='D';计数器[x]+?全局变量初始化为0。您所需要做的就是声明变量。列表在函数中?对不起,我使用了0作为一个不好的示例。我已将其更改为1。然后需要将循环放入函数中,例如在main
的顶部,或在main
顶部调用的单独函数中。声明仍然可以在外部执行:int counter[sizeof(list)/sizeof(list[0])代码>请举例说明您打算如何使用计数器。您将要实现许多代码段,每个代码段对其中一个计数器的使用方式不同<代码>计数器[A]+
<代码>计数器B++<代码>计数器['A']+<代码>C++<代码>x='D';计数器[x]+?sizeof(list)/sizeof(*list)
是一个常量表达式,可以用作计数器的大小asint计数器[sizeof(list)/sizeof(*list)]
sizeof(list)/sizeof(*list)
是一个常量表达式,可用作计数器的大小asint计数器[sizeof(list)/sizeof(*list)]代码>