1. 程式人生 > >結構體函式作用及示例

結構體函式作用及示例

一、作用

    1. 提高程式碼閱讀性

    2. 分類管理函式及部分屬性

    3. 偏向於c++的面向物件思維

二、使用方法:

    1. 宣告結構體函式

    2. 初始化結構體函式

    3. 呼叫結構體函式

三、示例

#include<stdio.h>
#include<stdlib.h>

/*structure declare*/
struct str_func{
    int a;
    int b;
    int (*add)(int a, int b);
    int (*sub)(int a, int b);
    int (*compare)(int a, int b);
};

int add(int a, int b){
    return a+b;
}

int sub(int a, int b){
    return a - b;
}

int compare(int a, int b){
    if (a>b)
        return a;
    else 
        return b;
}

/*create a structure and init*/
struct str_func test = {
    .a = 5,
    .b = 7,
    .add = add,              //function pointer point to function
    .sub = sub,
    .compare = compare,
};

int main(){
    if (test.compare)
        printf("a b max = %d\n",(test.compare(test.a,test.b)));
    if (test.compare)
        printf("a add b = %d\n",(test.add(test.a,test.b)));
    if (test.compare)
        printf("a sub b = %d\n",(test.sub(test.a,test.b)));
    return 0;
}

編譯及執行結果: