程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-C:在一個void類型的函數裡,return後跟一個有返回值的函數

c語言-C:在一個void類型的函數裡,return後跟一個有返回值的函數

編輯:編程解疑
C:在一個void類型的函數裡,return後跟一個有返回值的函數

int textf(int n)
{
printf("Textf:%d\n",n);
}
void text(int n)
{
printf("Text:%d\n",n);
return textf(n);
}
int main()
{
text(3);
return 0;
}
我這樣程序可以正常運行,請問這個是跟編譯器有關還是語法本身就允許的?
以及像text這樣,如果return後面是跟一個表達式的話,
是只求其值而不返回嗎?如果想這樣跟一個函數,它實際上會調用那個函數而不會將函數的返回值返回嗎?
以及我這樣子遞歸在CODE BLOCKS裡可以正常運行,同問這個是跟編譯器有關嗎:
void text(int n)
{
if(!n) return printf("END!\n");
printf("%d\n",n);
return text(n-1);
}
int main()
{
text(3);
return 0;
}

最佳回答:


我的網絡上傳圖片受限,貼出編譯時終端的報錯信息如下

casanovaz:0106 ie$ cc -c returnTest.c
returnTest.c:6:1: warning: control reaches end of non-void function
[-Wreturn-type]
}
^
returnTest.c:10:5: error: void function 'text' should not return a value
[-Wreturn-type]
return textf(n);
^ ~~~~~~~~
1 warning and 1 error generated.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved