国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C語言結(jié)構(gòu)體內(nèi)嵌函數(shù)指針

2019-11-10 19:24:06
字體:
供稿:網(wǎng)友
/*

.c文件聲明:1、關(guān)于結(jié)構(gòu)體定義以及初始化的注意事項(xiàng)。2、關(guān)于C語言結(jié)構(gòu)體內(nèi)嵌函數(shù)指針實(shí)現(xiàn)面向?qū)ο蟆?/h1>對(duì)于一個(gè)結(jié)構(gòu)體struct a {int b;int c;}; //結(jié)構(gòu)體定義后需要加分號(hào)。結(jié)構(gòu)體初始化方式:1、struct a a1 = { 1, 2};2、struct a a1 = {.b = 1,.c = 2};3、struct a a1 = {b:1,c:2}linux內(nèi)核習(xí)慣用第二種,使用第二種或第三種時(shí),結(jié)構(gòu)體成員的初始化順序可變。C語言是面向過程的,但是C語言寫出的linux系統(tǒng)是面向?qū)ο蟮摹7敲嫦驅(qū)ο蟮恼Z言,不一定不能實(shí)現(xiàn)面向?qū)ο蟆V皇钦f用面向?qū)ο蟮恼Z言來實(shí)現(xiàn)面向?qū)ο笠雍?jiǎn)單一些、直觀一些、無腦一些。用C++、java等面向?qū)ο蟮恼Z言來實(shí)現(xiàn)面向?qū)ο蠛?jiǎn)單一些,因?yàn)檎Z言本身幫我們做了很多事情;但是用C來實(shí)現(xiàn)面向?qū)ο蠛苈闊雌饋硪膊蝗菀桌斫猓@就是為什么大多數(shù)人學(xué)過C語言卻看不懂linux內(nèi)核代碼的原因。如下例子:*/#include<stdio.h>struct Struct_Insect_Poiter{int a;int b;void (*Out)(void);int (*Add_To_Sum)(int , int );}; void test(void);int test_1(int a, int b);int main(void){int Sum = 0;struct Struct_Insect_Poiter struct_a = {.a = 1,.b = 2,.Out = test //結(jié)構(gòu)體初始化末尾,不需要加任何符號(hào).}; //第二種結(jié)構(gòu)體初始化方式。struct Struct_Insect_Poiter struct_b ={a:3,b:6,Add_To_Sum:test_1//函數(shù)指針的初始化,將該函數(shù)指針指向與其類型匹配的函數(shù)。}; //第三種結(jié)構(gòu)體初始化方式。Sum = struct_b.Add_To_Sum(struct_b.a, struct_b.b);//調(diào)用該函數(shù)指針。PRintf("Sum = %d/n",Sum);//Sum = 9,結(jié)果正確。// struct_a.Out;//無報(bào)錯(cuò),但是無正確結(jié)果。struct_a.Out();//結(jié)果正確。return 0;}void test(void){printf("Succeed!/n");}int test_1(int a, int b){return a+b;}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 吐鲁番市| 绿春县| 嘉义县| 贞丰县| 棋牌| 恩施市| 扬中市| 九龙县| 兴安盟| 治县。| 炉霍县| 巴中市| 万盛区| 东丰县| 长丰县| 若羌县| 台北县| 凯里市| 天等县| 康保县| 晋江市| 大城县| 大港区| 保康县| 香港| 西丰县| 钦州市| 萨嘎县| 女性| 九台市| 宣武区| 西丰县| 大厂| 扶绥县| 南皮县| 郑州市| 天等县| 九龙县| 台中县| 苍山县| 永泰县|