溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言中怎么在結(jié)構(gòu)體內(nèi)定義函數(shù)

發(fā)布時(shí)間:2023-02-24 11:42:38 來(lái)源:億速云 閱讀:177 作者:iii 欄目:開發(fā)技術(shù)

這篇“C語(yǔ)言中怎么在結(jié)構(gòu)體內(nèi)定義函數(shù)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“C語(yǔ)言中怎么在結(jié)構(gòu)體內(nèi)定義函數(shù)”文章吧。

    如何在結(jié)構(gòu)體內(nèi)定義函數(shù)

    結(jié)構(gòu)體中引入函數(shù)

    #include <stdio.h>
    
    struct student {
        char *name;
        int age;
    
        void (*printInfo)(struct student *stu);
    };
    
    void printInfo(struct student *stu)
    {
        printf("name = %s, age = %d", stu->name, stu->age);
    }
    
    int main(int argc, char**argv)
    {
        struct student students[] = {
            {"zhangsan", 10, printInfo},
            {"lisi", 26, printInfo},
        };
    
        students[0].printInfo(&students[0]);
        students[1].printInfo(&students[1]);
    }

    C++中結(jié)構(gòu)體引入

    #include <stdio.h>
    
    struct student {
        char *name;
        int age;
    
        void printInfo(void)
        {
            printf("name = %s, age = %d\n", name, age);
        }
    };
    
    int main(int argc, char**argv)
    {
        struct student students[] = {
            {"zhangsan", 10},
            {"lisi", 26},
        };
    
        students[0].printInfo();
        students[1].printInfo();
    }

    C++中類引入

    #include <stdio.h>
    
    class student {
    public:
        char *name;
        int age;
    
        void printInfo(void)
        {
            printf("name = %s, age = %d\n", name, age);
        }
    };
    
    int main(int argc, char**argv)
    {
        struct student students[] = {
            {"zhangsan", 10},
            {"lisi", 26},
        };
    
        students[0].printInfo();
        students[1].printInfo();
    }

    結(jié)構(gòu)體成員有函數(shù)的定義與使用

    ```c
    
    #include <stdio.h>
    typedef int (*FunHandle)(int, int);			//定義 指向函數(shù)的指針 
    struct Example
    {
        int a;
        int b;
        FunHandle fun;					//函數(shù)作為結(jié)構(gòu)體成員
    };
    
    int add(int, int);
    
    int main()
    {
        struct Example ex;
        int r;
        ex.a = 1;
        ex.b = 2;
        ex.fun = add;
        r = ex.fun(ex.a, ex.b);			//結(jié)構(gòu)體中函數(shù)的 使用
        printf("%d + %d = %d \n", ex.a, ex.b, r);
        return 0;
    }
    
    int add(int a, int b)
    {
        return a+b;

    以上就是關(guān)于“C語(yǔ)言中怎么在結(jié)構(gòu)體內(nèi)定義函數(shù)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI