[問題] 關於變數前加void

看板C_and_CPP作者 (New page!)時間10年前 (2013/12/13 15:57), 編輯推噓4(4014)
留言18則, 10人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux gcc 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 研究tftp的source code時,發現他會對傳入的變數前加void 雖然argc 和argv 在這個函數內沒用到,但有必要 去加void來變型嗎?這有什麼特別的意義?謝謝 void xxxx (int argc, char *argv[]) { (void)argc; (void)argv; 以下省略 } 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.56.10

12/13 15:59, , 1F
有的編譯器會抱怨這是 unused variables
12/13 15:59, 1F

12/13 16:01, , 2F
加這兩行就不會產生warning
12/13 16:01, 2F

12/13 16:07, , 3F
表示是真的沒有要用而不是忘了用這個變數
12/13 16:07, 3F

12/13 16:57, , 4F
原來如此,感謝
12/13 16:57, 4F

12/13 23:28, , 5F
有什麼情況需要這樣嗎?
12/13 23:28, 5F

12/13 23:37, , 6F
-Werror
12/13 23:37, 6F

12/14 12:20, , 7F
還有一種是強迫症不想看到 warning (?)
12/14 12:20, 7F

12/14 13:56, , 8F
不想看到就不會給參數名字了… 多此一舉
12/14 13:56, 8F

12/14 14:55, , 9F
有warning的程式碼本來就不可接受吧
12/14 14:55, 9F

12/14 15:03, , 10F
C 應該不能不給名字
12/14 15:03, 10F

12/14 16:13, , 11F
如果習慣看到warning, 哪天真的出現有問題的warning你也
12/14 16:13, 11F

12/14 16:14, , 12F
不會注意, 所以保持無 warning 個人覺得是好習慣
12/14 16:14, 12F

12/14 16:14, , 13F
另外在"interface"概念下, 本來就會有你需要 implement
12/14 16:14, 13F

12/14 16:15, , 14F
的 function 會有不需要用到的參數的情況的, 並不是所有
12/14 16:15, 14F

12/14 16:15, , 15F
function 你都能決定要不要有那些參數存在
12/14 16:15, 15F

12/21 14:55, , 16F
void Foo(int /* arg */ ){ ... } 這樣也不會有warning
12/21 14:55, 16F

12/22 14:20, , 17F
@cloudrick: C 應該不能不給名字, 你說的是 C++ 嗎?
12/22 14:20, 17F

12/22 14:20, , 18F
不給名字在 C 是 Error
12/22 14:20, 18F
文章代碼(AID): #1Ightads (C_and_CPP)