error C2275 將此型別用作表示式非法

2021-08-03 12:56:35 字數 749 閱讀 4266

標籤: c

string

編譯器gcc程式設計

2012-03-24 00:46

32316人閱讀收藏 

舉報

debug(22)

c2275: 「size_t」: 將此型別用作表示式非法,同時還導致一堆變數未定義的bug。

將luaxml從lua5.1移植到5.2的時候,使用vs2010編譯luaxml_lib.dll的時候碰到了這個錯誤,然而使用gcc能編譯成功。

群上一人遇到問題:在正確的程式中增加kdprint()呼叫以輸出除錯資訊,如下:

//kdprint(("******xdriverentry******x"));

unicode_string  usztest;

ntstatus        ntstatus;

//但是增加這個函式呼叫後,程式就編譯出錯:error c2275: 'unicode_string' : illegal use of this type as an expression

將c**在vc++中編譯,經常會出現error c2275錯誤,結果是變數的定義位置不對,應該在函式塊的最前面。這是乙個程式設計習慣的問題。

在移植c++**到c的時候,經常會出現乙個奇怪的錯誤:「error c2275: 「***xx」: 將此型別用作表示式非法」

這個錯誤是由於c的編譯器要求將變數的申明放在乙個函式塊的頭部,而c++沒有這樣的要求造成的。

解決的辦法就是把變數的宣告全部放在變數的生存塊的開始。

error C2275 將此型別用作表示式非法

c2275 size t 將此型別用作表示式非法,同時還導致一堆變數未定義的bug。將luaxml從lua5.1移植到5.2的時候,使用vs2010編譯luaxml lib.dll的時候碰到了這個錯誤,然而使用gcc能編譯成功。群上一人遇到問題 在正確的程式中增加kdprint 呼叫以輸出除錯資訊,...

poj 2275 模擬(翻轉漢諾塔)

題意 給定1 n的乙個排列,能做的動作是逆轉第1 第m個數,給出一種方案使數列變成1 n。思路 簡單模擬,之所以簡單是因為不是求最少的運算元,而是給出一種方案即可。可是我還是貢獻了wa,因為理解錯了題意。題目中flip是指逆轉第1 第m的序列,而我理解成了交換第1和第m個數,orz。每次將最大的不在...

error C2137 空字元常量

如果在c 中定義乙個字元,並且用空字元 即單引號之間不包含任何內容 那麼編譯器就會報c2137的錯誤。char ch ch被初始化為空字元常量那為什麼c裡面不能有空字元常量呢?這是因為空字元常量不符合c89中對character constant的定義,下面是c89中對character const...