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.