国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 黄浦区| 阿拉善右旗| 铁力市| 麻阳| 隆化县| 明水县| 江永县| 浦城县| 江孜县| 濮阳市| 青铜峡市| 黎川县| 德惠市| 延津县| 渑池县| 大英县| 固始县| 安徽省| 保德县| 镇安县| 湄潭县| 淮安市| 额敏县| 溆浦县| 独山县| 峨边| 阜阳市| 恩平市| 从江县| 成安县| 宝清县| 庆云县| 凭祥市| 当雄县| 新竹县| 丰都县| 分宜县| 渭源县| 昔阳县| 宝丰县| 湘阴县|