我有一个回调函数的数组。一个函数只能在定义“SOMETHING”时使用。它是正确的有#ifdef来一个数组里面,如:在数组中使用#ifdef?
void (*const array[])(void) =
{
function_callback1,
function_callback2,
function_callback3,
function_callback4,
#if defined (SOMETHING)
function_callback5
#endif
};
该阵列是一个头文件中定义为:
extern void (*const array[5])(void);
我有一个MISRA侵犯:
“数组的初始化器数量比其声明的大小要小,默认 初始化应用于数组元素的其余部分”
的正确尺寸确定真正的代码不会说例如'[5]'而不是'[]'?这将解释错误消息,它提到了数组的“声明大小”,但是你的数组没有声明大小。 – emlai
你当然可以做到这一点。错误是由于别的。 – Haris
@tuple_cat:对不起,我忘了提及数组的大小是用5 – JohnDoe