我有這樣的定義:定義與命令的#define不MISRA遵守規則的陣列
static const char* STRING_ARRAY[NUM_UNITS] = STRING_ARRAY_VALUES;
時
#define STRING_ARRAY_VALUES \
{ "n/a", \
"bool", \
... \
}
不幸的是,它不是與MISRA-C++規則8-5-2遵守:
"MISRA-C++ Rule 8-5-2 (required): Braces shall be used to indicate and match the
structure in the non-zero initialization of arrays and structures."
任何人都可以請解釋爲什麼它不符合?我認爲的#define命令打開定義是這樣的:
static const char* STRING_ARRAY[NUM_UNITS] = {"n/a", "bool",...}
這與MISRA遵守規則。
有沒有辦法讓這符合MISRA,同時保持#define
?
這個聲明在哪裏? – chris 2013-02-28 15:05:14
該數組位於.cpp文件中,#define位於.h文件中。 – 2013-02-28 15:07:28
如果我省略省略號,則聲明'NUM_UNITS',並將其全部放在cpp文件中,對我來說工作正常。 – chris 2013-02-28 15:15:00