2017-09-26 90 views
0

我有這個標識無法解析標識符:「COL」

#define COL 32 

我用它來創建一個數列,都做工精細然而,調試代碼的一部分,我在其中,我添加COL來觀看(Visual Studio),並得到了「無法解析標識符」的消息,而不是一個值。代碼編譯和運行良好,但我不能檢查某些東西。我試圖註釋掉我的功能如果我在那裏做了某些事情,但這並沒有幫助,我一直在研究代碼幾個星期,它一直運行良好,我沒有更新任何東西,我完全無所適從......

+0

'COL'不是一個變量,在所有的地方'COL'用在代碼中它將被替換爲它的值:https://en.wikipedia.org/wiki/C_preprocessor – Raxvan

+0

我認爲你應該因爲它不是一個標識符,或者如果你能夠做到這一點,但是從VS那裏得到投訴,它可能是一個錯誤或一個錯誤配置。在我看來,VS是絕對的BS,所以切換到Linux並使用純粹的GCC或鏗鏘聲。 – ForceBru

+0

我可以用cout <<「COL」<< COL <<「\ n」打印值; – Flisp

回答

0

宏是在編譯的最早階段由預處理器替換爲。之後,代碼中沒有COL符號。

如果使用C++,做到這一點的C++方式:

namespace constants { 
    constexpr int coloums = 32; 
} 

預處理器的使用正在變得越來越遠,每次之間的C++標準的修訂。我們不需要它來定義積分常量,事實上從來沒有這樣做。

+0

謝謝!我替換了所有的#define,現在我可以遵循所有的值。 – Flisp

+0

@Flisp - 很高興它爲你整理:) – StoryTeller

相關問題