4
A
回答
12
您有類似:
int function(void)
{
return;
}
添加一個返回值,或者改變返回類型爲void。
的錯誤信息是非常明確的:
警告:沒有任何價值「迴歸」,在函數返回非空。
沒有價值的回報與我所展示的相似。該消息還告訴你,如果函數返回'void',它不會給出警告。但是因爲這個函數應該返回一個值,但是你的'return'語句沒有,所以你有一個問題。
這通常代表古代的代碼。在C89標準之前的日子裏,編譯器不一定支持'void'。接受的風格,那麼:
function_not_returning_an_explicit_value(i)
char *i;
{
...
if (...something...)
return;
}
技術上,函數返回一個int
,但預計沒有價值。這種類型的代碼引發了你所得到的警告 - 而C99正式宣佈禁止它,但編譯器爲了向後兼容性繼續接受它。
+0
我感謝您解釋爲什麼這只是作爲警告。 – tomjakubowski 2016-01-07 00:58:50
3
此警告,當你做這種情況:
int t() { return; }
因爲t()
被聲明爲返回一個int
,但return語句沒有返回一個int
。正確的版本是:
int t() { return 0; }
顯然你的代碼是比較複雜的,但它應該是很容易在你的代碼被發現裸return
。
4
,如果你忘記添加一個return語句作爲最後一個語句這個警告也發生了:
int func(){}
如果不指定一個函數它默認的返回類型爲int不空,因此這些都是還錯誤:
func(){}
func(){ return; }
如果你真的不需要返回一個值,你應該聲明你的函數爲返回void:
void func(){}
void func(){ return; }
相關問題
- 1. 不返回值,從函數具有非void返回類型
- 2. 如何解決「警告:沒有返回語句函數返回非void [-Wreturn-type]」空虛擬方法
- 3. 從Promise返回非返回函數導致警告
- 4. c void main函數?返回16值
- 5. 不返回,在函數返回非void {在日食CDT}
- 6. 返回void函數
- 7. 如何從非void函數返回?
- 8. Swift 1.2:void函數中意外的非void返回值
- 9. void函數中意外的非void返回值
- 10. void函數中意外的非void返回值Swift3
- 11. 返回從一個在C void函數++
- 12. 返回值void *在函數中
- 13. C++函數沒有返回值
- 14. 返回void的C++/C函數指針*
- 15. 迴文函數沒有返回值
- 16. Casting函數返回void
- 17. PostgreSQL函數返回void
- 18. 返回語句中的void函數C
- 19. 如何從void函數返回值?
- 20. 搜索函數返回strpos()警告
- 21. 警告:函數將始終返回True
- 22. 警告:'noreturn'函數確實返回
- 23. toDataURL()沒有返回有效圖像,除非先發出警告
- 24. 警告:'返回'一個值,在函數返回void返回下一個; ex19.c:95:10:錯誤:無效值不會被忽略,因爲它應該是
- 25. 無返回函數的函數評估返回void
- 26. 班級理解:在void函數中意外的非void返回值(swift 3)
- 27. 爲什麼在void函數中出現意外的非void返回值?
- 28. 在新的Swift類中的void函數中意外的非void返回值
- 29. C函數不返回值
- 30. C函數不返回值?
「醫生,當我在這裏揉時疼!」 「好吧,停止這樣做吧!」 :-P認真地說,如果一個函數有一個返回類型,不要只返回',而是返回一個所需類型的值。 – 2010-03-11 05:01:13