static uint32_t a[20] = {0};
uint32_t a[20] = {0};
我在代碼
a[0] = 1;
等使用這兩者....
當我製作變量static
並使用它時,出現錯誤
variable "a" was declared but never referenced
但是當我刪除static
事情工作正常。
在這兩種情況下,數組a
是全球性的。
錯誤是與MACROS。
數組聲明已完成,它由某個平臺使用,我沒有看到有關該錯誤的信息。相同的代碼會提供錯誤,因爲此聲明/數組未在其他平臺上使用。
我的不好!
static uint32_t a[20] = {0};
void func()
{
...............
#ifdef ABC
a[0] = 1;
#endif
................
}
現在在平臺ABC上編譯沒有錯誤編譯在某些非ABC平臺上有錯誤。
解決方案:環繞全球還根據各宏
#ifdef ABC
static uint32_t a[20] = {0};
#endif
'static'的意思是「這個變量不是_directly_可訪問的單元/文件之外」,但我不明白你爲什麼會收到這樣的錯誤 –
如果你得到一個錯誤,聲明一個變量但從未引用,賠率是你宣佈它但從未引用它。 (也許你引用了一個具有相同名稱的變量。) –
@DavidSchwartz是的,我想知道什麼是錯的。我在我的代碼中使用它相同的數組。 – Gopi