網域名稱俱樂部


返回   網域名稱俱樂部 > 電腦與網路技術 > 電腦網路相關技術 > 一般軟體與網路使用討論
論壇幫助 社區 日曆事件 今日新文章 搜尋

回覆
 
主題工具
  #1  
舊 2014-03-06, 05:56 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 23,058
預設 自定函數的型別要寫什麼?

看書上說自定函數如果沒有傳回值的話,就寫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,
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
回覆


發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼



所有時間均為 +8。現在的時間是 01:50 PM


本站主機由網易虛擬主機代管
Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.