gpt4 book ai didi

c - 有什么方法可以在我的程序中使用常量而不将其存储在内存中?

转载 作者:行者123 更新时间:2023-12-04 12:00:31 25 4
gpt4 key购买 nike

这是我的 C 代码:

#include "stdio.h"
#define SIZE1 500;
int main(int argc,char* argv[]){
unsigned long SIZE2=500;
char astring2[SIZE2];
char astring[SIZE1];
return 0;
}

如果我删除包含“define”的行和包含char astring[SIZE1]; 的行,那么程序将正常运行,但是至少需要 4 个字节的内存来存储数字 500 .

我希望看到不起作用的工作是删除这两行:

unsigned long SIZE2=500;
char astring2[SIZE2];

当我编译上面的完整代码时,编译器给我这些错误:

./teststring.c: In function 'main':
./teststring.c:6: error: expected ']' before ';' token

这对我来说表明 SIZE1 有问题。我还尝试在 SIZE1 的值周围加上引号,但我仍然收到相同的错误。

有什么办法可以做到这一点,还是我必须在内存中存储一​​个数字才能使用它?

我不想在我的程序中需要它的任何地方不断地键入相同的数字,所以请不要建议 char astring[500] 作为答案,但如果编译器在将代码编译为可执行格式时在幕后为我做了这件事。

我的编译器是 GCC 4.1.2 版。

最佳答案

你的意思是

#define SIZE1 500

在您的代码中,每当您使用 SIZE1 时,都会插入一个分号。 #define 等预处理器命令不以分号结尾。

关于c - 有什么方法可以在我的程序中使用常量而不将其存储在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32102063/

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