[問題] return問題

作者: david830317 (dd810)   2016-04-28 01:42:22
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Xcode
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
在xcode時用void以外不能用reture
錯誤結果(Wrong Output):
Control may reach end of non-void function
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/T36LJH
補充說明(Supplement):
作者: Schottky (順風相送)   2016-04-28 01:47:00
第 87 行和第 111 行漏了 return然後你的 calcValue() 在 unit<1, 10<unit<11 等狀況下就會連續闖過三個 if 到達沒有寫 return 的地方...這也就是你貼的那行訊息所要告訴你的事。
作者: david830317 (dd810)   2016-04-28 01:53:00
感謝大大幫忙,上課有問過老師結果老師也不知道原因..
作者: Schottky (順風相送)   2016-04-28 02:14:00
如果我是老師,我不會說不知道,而是說我回去查查資料然後用一個沒人認識的 ID 到本板問完,下週再告訴你...
作者: BlazarArc (Midnight Sun)   2016-04-28 03:36:00
樓上XD
作者: ho83leo (LWHo)   2016-04-28 13:37:00
S大真幽默
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-04-28 14:21:00
現在compiler會注意你的執行path 你老師以前應該沒看過(現在的gcc會嗎?)
作者: Schottky (順風相送)   2016-04-28 14:35:00
gcc 很早就會檢查了,只是你要開-Wall或-Wreturn-type我會要求 warning 全開並且把 warning msg 儘量清空因為會設這個 warning 代表可能有潛在的 bug
作者: BlazarArc (Midnight Sun)   2016-04-28 14:39:00
我都 -Wall -Werror
作者: Schottky (順風相送)   2016-04-28 15:24:00
我也試過 -Werror ,但有時 warning 出在 3rd party 的.h 檔裡面... 你可以幫他修,但每次換版本都要再修一次
作者: uranusjr (←這人是超級笨蛋)   2016-04-29 15:23:00
GCC 可以用 pragma 選擇性 ignore 某些警告啊, 你在include 那些檔案時加一下就好了http://stackoverflow.com/a/3394268/1376863
作者: eye5002003 (下一夜)   2016-04-29 20:40:00
可以追加搭配-Wextra服用
作者: Schottky (順風相送)   2016-04-29 20:49:00
我想起來了,後來是有用 #pragma warning disable 這招可是開啟 VC 的 warning as error 人人靠北,只好作罷

Links booklink

Contact Us: admin [ a t ] ucptt.com