错误28:表达式必须有一个常量值
Error 28: Expression must have a constant value
我在keil uvision5中有一段c++代码,得到错误28:表达式必须有一个常量值。我正在想办法修理它。
这是发生在(函数内部)的行:
osPoolDef_t pool_def = { queue_def->queue_sz, queue_def->item_sz};
它不喜欢变量queue_sz或item_sz。
下面是osPoolDef_t的定义:typedef const struct os_pool_def {
uint32_t pool_sz; /* number of items (elements) in the pool */
uint32_t item_sz; /* size of an item */
void *pool; /* pointer to memory for pool */
} osPoolDef_t;
和queue_def是指向osMailQDef_t的指针,如下所示:
typedef const struct os_mailQ_def {
uint32_t queue_sz; /* number of elements in the queue */
uint32_t item_sz; /* size of an item */
struct os_mailQ_cb **cb;
} osMailQDef_t;
希望这是足够的信息。
似乎问题是我不再使用c99了,但是当我使用c99时,该文件的代码工作得很好。是否有一种方法可以强制使用c99完成该文件的编译?
可以使用——C99选项强制armcc编译器使用C99。
相关文章:
- 用C++中的一个变量定义一个常量
- 有一个打印语句的函数是一种糟糕的编程实践吗
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 如果有一个模板构造函数只有一个泛型参数,为什么我必须有一个复制构造函数
- 有没有可能有一个只有ADL才能找到的非好友功能
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 在学习数据结构之前对STL有一个了解是好的吗?
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 是否可以在C++中有一个"generic"模板参数,该参数可以是非类型模板参数或类型?
- 我的输出中有一个额外的 0,为什么会这样
- 节点是否为空,即使它有一个值?
- 将数组信息存储到 c++ 向量中有一个"Access violation reading location"
- 编译器错误:函数调用在常量表达式中必须有一个常量值
- 我有非常量ID3D11ShaderResourceView*,而DirectX函数需要常量一个
- 常量是否有一个c++临时右值
- 为什么 C++ 数组的大小不能有一个返回常量的函数调用
- 我可以有一个返回*this并处理非常量对象的const成员函数吗
- 是否可以有一个非常量键类型的无序映射