禁用 gcc 错误参数“<anonymous>”包括指向未知边界数组的指针
Disable gcc error parameter '<anonymous>' includes pointer to array of unknown bound
我有以下代码行:
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++ 编译器进行编译。
将感谢您的帮助。
尝试将 max_data 定义为:
typedef uint8* max_data;
指定尺寸:
typedef uint8 max_data[10];
当您将数组传递给函数时,数组会隐式转换为指针,并且您无法创建指向未知大小数组的指针。
要解决您的问题,请为您的数组指定大小 typedef uint8 max_data[10];
或使用指针和动态内存分配。
我有以下代码行:
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++ 编译器进行编译。 将感谢您的帮助。
尝试将 max_data 定义为:
typedef uint8* max_data;
指定尺寸:
typedef uint8 max_data[10];
当您将数组传递给函数时,数组会隐式转换为指针,并且您无法创建指向未知大小数组的指针。
要解决您的问题,请为您的数组指定大小 typedef uint8 max_data[10];
或使用指针和动态内存分配。