void

如果一個函式不需要參數,必須宣告 void, 不可以逕留空白。 如果一個函式沒有函式值,也必須宣告 void, 不可以省略不寫。不寫的話,表示它的函式值是 int 資料型態。 以下是一個例子。


#include <stdio.h>

/* 示範一個沒有參數也沒有函式值的函式  (test-void.c) */
void hello(void);

main() {
    hello();
}

void hello(void) {
    printf("Hello world!  Again.\n");
}

這是一個著名的「脫了褲子放屁」的範例。 因為 hello() 沒有函式值, 所以在它的 BODY 裡面,不須 return 指令。

最常見的沒有參數也沒有函式值的函式, 就是輸出錯誤訊息 (error message) 或輔助訊息 (help message) 的函式。

習題

  1. 試想,在一個宣告了函式值的函式中,可不可以不寫 return 指令?反過來,在一個宣告了沒有函式值的函式中, 可不可以寫 return 指令?做一些實驗來測試您的推理是否正確。
  2. 如果函式值宣告是 int 型態, 但是 return 的變數卻是 float 型態, 結果會如何?請先按照 C 的設計邏輯推理,再實驗看看。
  3. 描述以下函式各需要幾個參數?哪些型態的參數?函式值是什麼型態?
    1. void one(float);
    2. two(float);
    3. three(int, char, char);
    4. void four(char, char, int, double);

[ 前一節 ]‧[ 後一節 ]‧[ 回目錄 ]



注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。

Created: Mar 31, 2000
Last Revised: Mar 31, 2000
© Copyright 2000 Wei-Chang Shann 單維彰

shann@math.ncu.edu.tw