我這裏一些代碼,提出了一個警告警告:即使用「返回0」,控制也會達到非void函數的結束[-Wreturn-type]在主功能
控制到達非void函數[-Wreturn型]結束。
讓我困惑的是,如果我在功能打印機中添加return 0;
,警告消失。我是C語言的新生,所以希望你能幫助我解決這個問題。謝謝。
#include <stdio.h>
int printer(int *ip){
printf("%d", *ip);
// return 0; //with the expression, the warning will disappear. why?
}
int main(int argc, char *argv[]){
int number = 10;
int *ip;
ip = &number;
printer(ip);
return 0;
}
那麼,你是怎麼聲明'printer'函數返回的,你實際返回了什麼? – kaylum
或將'printer'的返回類型從'int'更改爲'void'。 – BLUEPIXY
這不是魔術。無論你聲明你的函數返回「type」是什麼,你都應該返回那個'type'的值,例如。 'void foo(){..不返回任何東西,但可以返回;}}; 'int foo(){..返回一個int; ..}'; 'char * foo(){..返回一個char *; ..}' - 你得到了漂移。 –