2016-01-11 123 views
0

代碼在頭間接級別:'const的汽車' 的不同之處從 '爲const char * const的'

extern const char* const foo; 

代碼在源:

const auto foo = "bar"; 

視覺工作室2015 producess以下錯誤:

Error C2040 'foo': 'const auto' differs in levels of indirection from 'const char *const '

我的嵌入式編譯器(來自Keil的uVision)對此代碼沒有問題,Clang (coliru)。我的問題是,這是VS編譯器中的錯誤還是在我的代碼中有問題?

+0

'auto'並不推斷CV-預選賽。 –

+2

相關:[使用「auto」的聲明是否匹配使用具體類型說明符的extern聲明?](http://stackoverflow.com/questions/26386010/does-a-declaration-using-auto-match-an- extern-declaration-that-uses-a-concrete) – BlackDwarf

+0

@BlackDwarf謝謝! – rozina

回答

0

我覺得你autoconst不夠的 - 它推導出const char *(這是一個字符串類型),你需要const char * const。我不認爲這是一個編譯器錯誤。

我認爲這個代碼在編譯時與-pedantic-errors一起在GCC和叮噹中引發錯誤。

0

定義應遵循的聲明(省略EXTERN):const char* const foo = "bar";

相關問題