子函式呼叫

愛寶發表於2019-01-04
  						子函式呼叫
  1. 子函式
    定義:能被其他程式呼叫,在實現某種功能後能自動返回到呼叫程式去的程式。其最後一條指令一定是返回指令,故能保證重新返回到呼叫它的程式中去。也可呼叫其他子程式,甚至可自身呼叫(如遞迴)。
  2. 函式的呼叫形式
    函式呼叫的一般格式為:(在main函式中)
    <函式名> ([<實際引數列表>]);
  3. 函式宣告
    函式宣告的一般格式:
    <返回型別><函式名> ([<形參型別1>][<形參1>],[<形參型別2>][<形參2>]…);
    例:
#include<stdio.h>

int main()
{
    void putin(int);    //函式原型宣告
    int number;
    printf("請輸入數字:\n");
    scanf("%d",&number);
    putin(number);     //呼叫子函式putin()
    return 0;
}

void putin(int number)
{
    printf("%c\n",'number');  //將輸入的數的ascll碼輸出
    return ;
}

執行結果:

注:
個人自己的理解:

1.在函式宣告的時候,個人比較喜歡放到標頭檔案的下面。宣告時不是按照函式原型宣告(省略形參),而是詳細的都列出來,因為在用函式原型宣告的時候很容易出錯,倒不如直接全部宣告。

2.在函式呼叫的時候倒是沒有什麼不一樣的,基本上就是這個模板.

最後在放個你讓我看的例子;
法一:

#include<stdio.h>
//宣告子函式
void name(char student_name[20]);
void place(char student_hometown[20]);

int main()
{
    char student_name[20];
    char student_hometown[20]; //定義兩個字元變數
    //呼叫子函式
    name(student_name);
    place(student_hometown);
    //介面化實現
    printf("*******************************\n");
    printf("Welcome!  %s \n",student_name);
    printf("come from:%s!\n",student_hometown);
    printf("*******************************\n");
    return 0;
}

//name子函式
void name(char student_name[20])
{
    printf("Enter your name:\n");
    scanf("%s",student_name);
    return ;  //純屬個人習慣,沒有也是對的
}
//place子函式
void place(char student_hometown[20])
{
    printf("Enter your hometown:\n");
    scanf("%s",student_hometown);
    return ;
}

法二:

#include<stdio.h>
//宣告子函式
/*
void name(char student_name[20]);
void place(char student_hometown[20]);
*/
//name子函式
void name(char student_name[20])
{
    printf("Enter your name:\n");
    scanf("%s",student_name);
    return ;  //純屬個人習慣,沒有也是對的
}
//place子函式
void place(char student_hometown[20])
{
    printf("Enter your hometown:\n");
    scanf("%s",student_hometown);
    return ;
}


int main()
{
    char student_name[20];
    char student_hometown[20]; //定義兩個字元變數
    //呼叫子函式
    name(student_name);
    place(student_hometown);
    //介面化實現
    printf("*******************************\n");
    printf("Welcome!  %s \n",student_name);
    printf("come from:%s!\n",student_hometown);
    printf("*******************************\n");
    return 0;
}

注:其實法二,並不算是一種方法。只是把所有的子函式放在了main函式的上邊就不需要宣告瞭。
遇到的一些問題:
1.儘量不要在宣告的時候省略形參。
2.注意一下關於字串的處理,值得深入研究字串。
3.註釋打一下,既是練打字,還能讓自己更瞭解

相關文章