我有一個回調函數的數組。一個函數只能在定義「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