c++ - 禁用 gcc 错误参数 '<anonymous>' 包含指向未知边界数组的指针

标签 c++ c gcc-warning

我有以下代码行:

typedef P2FUNC(Std_ReturnType, APP1, GetData) (P2VAR(max_data, AUTOMATIC, APP2)

其中 P2FUNC 和 P2VAR 是编译器宏:

#define P2FUNC(rettype, ptrclass, fctname) rettype (*fctname)
#define P2VAR(ptrtype, memclass, ptrclass) ptrtype *

max_data 定义为:

typedef uint8 max_data[];

编译器给出以下错误:

error: parameter '<anonymous>' includes pointer to array of unknown bound     'max_data {aka unsigned char []}'

此 .h 文件包含在 extern"C"{ ...声明内的 .cpp 文件中。

我现在的问题是,是否可以针对这种特定情况禁用此错误消息?根据某些特定标准,这种情况有其自身的原因,即数组大小未确定。

我正在使用 g++ 编译器进行编译。 将感谢您的帮助。

最佳答案

当您将数组传递给函数时,数组会隐式转换为指针,并且您无法创建指向未知大小的数组的指针。

要解决您的问题,请为数组指定大小 typedef uint8 max_data[10]; 或使用指针和动态内存分配。

关于c++ - 禁用 gcc 错误参数 '<anonymous>' 包含指向未知边界数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871864/

相关文章:

c++ - 调试断言失败错误

c - 如何在没有空终止符的情况下初始化 char 数组?

c++ - 为什么 "-flto"静默 GCC 的警告 "stringop-truncation"

c - 当我在终端中按 Ctrl+C 时,执行 C 中的最后一个函数

c - pebble watch 上出现 "Ignoring invalid key: KEY_TEMPERATURE"错误

c++ const_cast gcc 8.2.1 -Wignored-qualifiers 错误?

gcc - qsort_s 位于 Windows 的 MingGW (gcc 4.8) 中的哪个 header 中?

c# - 无需安装的 C++ 数据库访问

c++ - 两个数字的按位连接

c++ - 什么时候执行后增量 i++?