網域名稱俱樂部

網域名稱俱樂部 (https://www.domainclub.org/index.php)
-   一般軟體與網路使用討論 (https://www.domainclub.org/forumdisplay.php?f=43)
-   -   自定函數的型別要寫什麼? (https://www.domainclub.org/showthread.php?t=36205)

哈啦 2014-03-06 05:56 PM

自定函數的型別要寫什麼?
 
看書上說自定函數如果沒有傳回值的話,就寫void,例如void func(void)。

但何謂沒有傳回值?

例如的這個例子:
#include <stdio.h>

int func(int x);

int main(void)
{
int y,z;
printf("enter a number: \n");
scanf("%d",&y);
z=func(y);
printf("%d",z);

return 0;
}

int func(int x)
{
x=x/2;
}

我如果換成void func(int x)編譯會有錯誤。

但如果是下面這個:
#include <stdio.h>

void func(int x);

int main(void)
{
int y,z;
printf("enter a number: \n");
scanf("%d",&y);
func(y);


return 0;
}

void func(int x)
{
printf("%d",x);
}

用void func(int x)則是ok的。

是否因為前一個程式,func()有傳回一個值,這個值要給z,所以不能預設型別為void。而後者則沒有值傳給main(),它只是「執行」一個功能,所以可以寫成void func()?

如果把void func()也都寫成 int func() 不管是否有回傳值,好像也都ok,是嗎?

thanks,


所有時間均為 +8。現在的時間是 02:24 PM

Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.