簡體   English   中英

Visual Studio中的調試錯誤

[英]debug error in visual studio

有人可以解釋一下我在這里做錯了什么,我收到一個錯誤意外的文件結束和缺少功能標題,提前謝謝

static char debug[256];

#define DBGPRINT(...)           {sprintf_s(debug, 256, __VA_ARGS__); OutputDebugStringA(debug);}

#define CHECK_READ(status, str) while(0){                                                                               \
                                    if(0 == status){                                                                    \           
                                        DBGPRINT("Message %s\n", str);                  \
                                        return 0;                                                                       \
                                    }                                                                                   \
                                }                                                                                       
int main(){

char* str = "hello world";
status = 0;
CHECK_READ(status, str);

return 0;
}

錯誤:

Error line  7   error C2447: '{' : missing function header (old-style formal list?)
Error   line 11 error C2447: '{' : missing function header (old-style formal list?)
Error   line 15 error C2017: illegal escape sequence    
Error   line 19 fatal error C1004: unexpected end-of-file found 

在宏定義結束時你有一個額外的\\ 所以你的int main(){ line實際上是宏CHECK_READ的一部分:)


編輯:
沒有尾隨\\的變體在ideone上編譯得很好: http ://ideone.com/pddx0。 我聲明了status ,因為它沒有在你的代碼中聲明。 (我注釋掉了OutputDebugStringA並用snprintf替換了sprintf_s ,因為它們都是特定於Microsoft的,不能在gcc上編譯。)

好的,這是真正的答案。

我從上面的代碼中復制並粘貼,並且在一個宏定義行上有尾隨空格

if(0 == status){               \  WHITESPACE HERE

對於作為行連續字符操作的黑色長度,它必須是該行的最后一個字符,之后沒有空格。 現在誰知道這是否是你的實際問題,但是對於空白,我得到了和你一樣的錯誤,如果沒有它,我就沒有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM