#define uchar unsigned char
創(chuàng)新互聯(lián)建站一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、成都網(wǎng)頁(yè)設(shè)計(jì)、微信小程序、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、成都app軟件開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來見證!
void (*current_operation_index)();
void fun0()
{
printf("hello world!\n");
}
typedef struct
{
uchar current;
uchar up;//上鍵
uchar down;//下鍵
uchar enter;//確認(rèn)鍵
uchar back;//返回鍵
void (*current_operation)();
}key_table;
key_table table={0,0,0,1,0,(*fun0)};
void main()
{
current_operation_index=table.current_operation;
(*current_operation_index)();
}
不可以的,結(jié)構(gòu)體一般都只有數(shù)據(jù)成員,而沒有函數(shù)成員。也就是像int、double這樣的數(shù)據(jù)類型,函數(shù)需要單獨(dú)定義。如果必需使用函數(shù),就得用C++中的類概念了
我在VC6里面運(yùn)行了一下主要有一下的錯(cuò)誤
1,首先,漢字“男”這個(gè)是一個(gè)字符串,所以必須占三個(gè)字節(jié)也就是 char sex[3];才可以記住,字符串以‘\0’結(jié)尾哦!你沒有算\0
2,就是你丟了好幾個(gè)(逗號(hào)),自己找下
4,,再次你的struct test后的k[5]只能說是聲明了一個(gè)變量,但是變量的初始化必須在main 內(nèi)進(jìn)行,但是又牽扯到了字符賦值的問題!這個(gè)可能你沒太深入去學(xué)!額錯(cuò)誤有點(diǎn)多,我給你改了下,你自己在仔細(xì)找找哪里有錯(cuò)誤吧!
#includestdio.h
struct test
{
int kaohao;
char name[10];
char sex[3];
int age;
float chengji;
};
void best(test k[5])
{
int i=0;
float max=0;
struct test maxs;
for(;i5;i++)
if(k[i].chengjimax)
{
max=k[i].chengji;
maxs=k[i];
}
printf("最高成績(jī)的人是:%s\n成績(jī)?yōu)?f\n",maxs.name,maxs.chengji);
}
int main()
{
struct test k[5]={ //要是.c文件的話就必須注明聲明變量!你之前的聲明也可以聲明
//k[5]變量但是不能在拿來初始化!總的來說你寫的還挺不錯(cuò)的!
//繼續(xù)加油??!
{1101,"張三","男",19,68.5},
{1102,"李四","男",20,75},
{1103,"王五","女",18,80.5},
{1104,"孫六","女",18,90},
{1105,"周七","男",19,59}};
best(k);
return 0;
}
不能,只能放數(shù)據(jù),想要放函數(shù)的話,搞一個(gè)指向函數(shù)的指針,把指針放進(jìn)結(jié)構(gòu)體里就可以了。
c語(yǔ)言的結(jié)構(gòu)體是一組數(shù)據(jù)的組合,并不是簡(jiǎn)單的單一類型。所以在查找和輸出的時(shí)候,均不能直接操作,而是要進(jìn)行變通。
1
查找。
對(duì)于以某一項(xiàng)為關(guān)鍵字進(jìn)行查找時(shí),比如在結(jié)構(gòu)體中有int型的成員a,要查找a為100的結(jié)構(gòu)體變量,這時(shí)需要遍歷每個(gè)結(jié)構(gòu)體(數(shù)組、鏈表、或者其它任意形式),對(duì)每個(gè)元素的成員a值進(jìn)行比較,符合的則表示查找成功。
對(duì)于結(jié)構(gòu)體中元素較多,同時(shí)要對(duì)整個(gè)結(jié)構(gòu)體每個(gè)元素都匹配才算查找到的特殊情況,可以使用memcmp的方式,整體進(jìn)行比較,以減少代碼量。不過這種情況較為少見,不過多描述。
2
輸出。
對(duì)于結(jié)構(gòu)體的輸出,其實(shí)就是對(duì)其每一項(xiàng),或者若干項(xiàng)成員變量的輸出。
所以可以使用基本的輸出函數(shù),對(duì)每一項(xiàng)單獨(dú)輸出,輸出中為了方便閱讀,可以加一些說明文字。
如果對(duì)結(jié)構(gòu)體輸出有多處調(diào)用的需求,可以在將該功能封裝為函數(shù),供各個(gè)需要的函數(shù)調(diào)用。這樣的好處是,當(dāng)結(jié)構(gòu)體的成員出現(xiàn)變化,或者結(jié)構(gòu)體輸出要求更改時(shí),修改一處代碼即可完成所有的輸出修改,實(shí)現(xiàn)易于維護(hù)的效果。
新聞名稱:結(jié)構(gòu)體中含有函數(shù)c語(yǔ)言,c++結(jié)構(gòu)體里面可以有函數(shù)嗎
URL標(biāo)題:http://muchs.cn/article36/hssopg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站制作、、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)