自定函數的型別要寫什麼?
看書上說自定函數如果沒有傳回值的話,就寫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,
|