我们可以在结构声明中使用#define 常量作为数组大小吗?

标签 c arrays struct

我正在用 C 做以下事情

#define MAX_DATA_SIZE 500;

struct reliable_state {

  char dataBuffer[MAX_DATA_SIZE]; 

}

即我想在结构声明中使用#define 常量作为数组大小。 但是上面的代码给出了奇怪的错误

.c:36: error: expected ‘]’ before ‘;’ token

那么有没有其他方法可以做到这一点?

最佳答案

是的,你可以,只需删除';'在你的定义行中:

#define MAX_DATA_SIZE 500

有了define,你的编译器实际上会“看到”你的结构定义

char dataBuffer[500;];

这显然是错误的。

关于我们可以在结构声明中使用#define 常量作为数组大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736487/

相关文章:

function - Golang 包结构返回缓冲区

html - 返回到 HTML 页面

c - 设置了 1 位的位掩码的名称

c++ - mno-cygwin 在构建 C++ 库时出现无法识别的命令行选项错误

python - NumPy 数组的滚动/增加维数

c++ - 如何按降序排序?

c - Delphi 中通过引用传递的指针(从 DLL 导入函数)

c++ - 使用 strcpy 复制字符串数组索引 0

python - 如何在 python3 中有效地将位从一个字节数组打包到另一个字节数组?

c - 无法打印链表