看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《madoka82 (惡水上的大橋)》之銘言: : → madoka82:眼殘...沒看到還是要在 VC 下頭編,如果是只改檔名就可以 11/20 12:14 : → madoka82:解決的問題,那還是直接改副檔名或許會快一點... 11/20 12:14 : → tropical72:的確馬上改檔名可以過,只是用.c一直過不去所以很好奇 11/20 12:19 : → tropical72:另外..您的code我於vc用.c測,似乎沒辦法過.. 11/20 12:20 : → tropical72:我的原碼與錯誤訊息:http://nopaste.csie.org/190d9 11/20 12:24 : → madoka82:如果把 (1) typedef 那行的 struct 拿掉可以過嗎?_? 好奇 11/20 12:25 : → tropical72:一樣不會.我縮減我的程式碼,發現問題都是在 (a) 行 11/20 12:34 : → tropical72:http://nopaste.csie.org/f80c7 註解掉就過了. 11/20 12:35 : → tropical72:所以才上MSDN查C2275 http://ppt.cc/TI(W ,還是看不出 11/20 12:36 : → tropical72:個所以然.. 11/20 12:36 : 推 tomcallme:我也都這樣寫 11/20 15:14 這個是這樣的: 上面的 struct 那段定義了一個 unnamed struct 然後用 typedef 把這個 unnamed struct 定成 Node 再把 Node* 去定義 pNode 也就是並不存在 'struct Node' 這個東西 所以你的結構定義裡的 struct Node * 就會導致 C4133 至於那個 C2275....純粹是因為你在函式中間才宣告變數的關係 C 語言規定所有的變數宣告一定要在 block 的開頭 也就是跟在 { 的後面 不能在函式中間直接宣告新變數... -- 'Oh, Harry, don't you see?' Hermione breathed. 'If she could have done one thing to make absolutely sure that every single person in this school will read your interview, it was banning it!' ---'Harry Potter and the order of the phoenix', P513 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.92
tomcallme:發問~我也是寫C 可是沒碰過最後四句那個情況耶 = = 11/20 15:31
LPH66:樓上那是你都用 .cpp 的副檔名的關係... 11/20 15:36
tomcallme:我都用*.c ...... 11/20 15:39
tomcallme:0.0 真的啦 我沒有騙你 我的程式都是.c的副檔名 11/20 15:42
james732:那樓上用的編譯環境? 11/20 15:42
tomcallme:Dev-c++ 或是 code::blocks 11/20 15:42
tomcallme:你應該是問這個吧 我沒有很專業 怕答非所問 11/20 15:43
james732:是的,剛剛試了一下gcc就算是.c檔其實也不會抓這個問題 11/20 15:44
tomcallme:喔喔 3Q 11/20 15:45
nowar100:因為gcc預設是延伸過的標準 改用-std=c89應該就會錯 11/20 15:46
james732:-std=c89與-ansi都不會錯 真是... 11/20 15:46
tomcallme:所以這是舊的觀念的意思嗎? 11/20 15:49
nowar100:神奇 竟然沒錯 那是以前的標準 後來就拿掉了 11/20 15:50
james732:應該說這是標準的規定,但編譯器可能會放寬這個規則 11/20 15:50
tomcallme:嗯~ 11/20 15:51
loveme00835:XD 所以大家寫 C 語言都把變數全堆在一起囉? 11/20 15:58
james732:我看過的寫法是用 { } 弄出一個 block 再宣告變數 11/20 16:00
james732:void func() { 變數 程式 { 變數 程式 } } 這樣的感覺 11/20 16:01
loveme00835:C99 A.2.3 block-item-list 那邊就可以穿插用阿 XD 11/20 16:06
tropical72:事實這問題我查了一些時間,如loveme大大所說,c99有支援 11/20 16:49
tropical72:好笑的是又看到"流言"說,M$公布不從C99,於是遇到這種 11/20 16:50
tropical72:窘境.不論如何,謝謝LPH說明,我受益良多 :) 11/20 16:51
tropical72:附註:dev-c++, gcc, code::blocks 查是都從C99 11/20 16:52
Yshuan:gcc的確沒有最後那4行的問題! 最近用VC就有 - - 11/22 01:07
Bencrie:最後那四行 ... 編譯會過不代表沒問題啊 XD 11/22 16:40