結構體函數作用及示例


一、作用

    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;

}

編譯及運行結果:

 

摘自:https://blog.csdn.net/sinat_29891353/article/details/83067747


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM