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