女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一句話幫你理解 typedef 的用法

丫丫119 ? 來(lái)源:未知 ? 作者:肖冰 ? 2019-09-19 14:20 ? 次閱讀

前言

C語(yǔ)言中typedef用來(lái)給復(fù)雜聲明定義別名非常的方便,不過(guò)有時(shí)候typedef在復(fù)雜聲明中不好理解。本文關(guān)鍵的一句話幫你理解ytpedef的用法。

typedef常見(jiàn)應(yīng)用場(chǎng)景

在這之前,我們來(lái)看看一些常見(jiàn)應(yīng)用場(chǎng)景。

為特定含義的類型取別名

例如,假設(shè)速度是整型值:

typedefintSpeedType;

那么你就可以像下面這樣使用了:

#include
typedefintSpeedType;
intmain(void)
{
SpeedTypes=10;
printf("speedis%dm/s",s);
return0;
}

在main函數(shù)中,你可以直接使用SpeedType作為一種類型來(lái)定義變量了。有人可能問(wèn)了,為什么要這樣,直接使用int不是更好嗎?那么如果你的代碼中很多地方都用到了這個(gè),但是突然有一天不再使用int,而是使用long呢?是不是直接修改typedef部分就可以了?(當(dāng)然打印的地方也需要變,可自定義打印函數(shù)),另外一方面,通過(guò)SpeedType這個(gè)名字就可以非常直接的讀懂變量的含義。

事實(shí)上,size_t,socklen_t等類型都是類似的定義。

說(shuō)到typedef,就需要提一下define了,define只是一個(gè)字符串簡(jiǎn)單替換。當(dāng)然下面這樣的例子你可能見(jiàn)過(guò)很多次了:

#definePIONTERint*
PIONTERa,b;//等同于int*a,b;
typedefint*POINTER1
POINTER1c,d;//等同于int*c;int*d;

為結(jié)構(gòu)體取別名

這個(gè)也比較常見(jiàn),不過(guò)有的人認(rèn)為,為結(jié)構(gòu)體取別名并不是一個(gè)明智的選擇,因?yàn)樗谑褂玫臅r(shí)候不能直觀看到它是結(jié)構(gòu)體類型了。

structinfo
{
charname[128];
intlength;
};

那么你在聲明變量的時(shí)候,需要帶上struct,即像下面這樣使用:

structinfovar;

但是如果你用typedef取個(gè)別名呢?

typedefstructinfo
{
charname[128];
intlength;
}Info;

你就可以像下面這樣使用了:

Infovar;

聲明函數(shù)指針類型

前面的都很好理解,那么來(lái)看看函數(shù)指針:

typedefvoid*(*Fun)(int,int);

這里將返回類型為void *,入?yún)閕nt的函數(shù)類型命名為Fun,那么在其他地方,就可以像下面這樣使用啦:

//來(lái)源:公眾號(hào)【編程珠璣】,博客地址:https://www.yanbinghu.com
#include
typedefvoid*(*Fun)(int,int);
void*test(inta,intb)
{
printf("%d,%d
",a,b);
//dosomething
returnNULL;
}
intmain(void)
{
Funmyfun=test;//這里的Fun已經(jīng)是一種類型名了
myfun(1,1);
return0;
}

是不是發(fā)現(xiàn)跟前面的不一樣了呢?類型別名的位置飄忽不定,有的在最后,有的在中間。

當(dāng)然typedef的場(chǎng)景并不限于以上幾種,這里僅僅是舉例。

一句話理解

我不知道你是不是已經(jīng)完全理解了前面的場(chǎng)景,無(wú)論理解與否,這句話都能很好的幫助你再次理解前面的內(nèi)容:

typedef中聲明的類型在變量名的位置出現(xiàn)。

什么意思呢,我們回頭來(lái)看。我們是怎么聲明int類型變量的?

intTypename;

像上面這樣,對(duì)不對(duì)?那么用typedef之后呢?把變量名的位置替換為別名:

typedefintTypename;

好了,你現(xiàn)在已經(jīng)把為int取別名為Typename。

再來(lái)看結(jié)構(gòu)體,聲明普通結(jié)構(gòu)體變量:

structinfo
{
charname[128];
intlength;
};
structinfoTypename;

用typedef取別名,別名取代變量名的位置:

structinfo
{
charname[128];
intlength;
};
typedefstructinfoTypename;

好了,你現(xiàn)在已經(jīng)為struct info取別名為Typename。
當(dāng)然這可能我們平常通常使用下面這種寫(xiě)法:

typedefstructinfo
{
charname[128];
intlength;
}Typename;

再來(lái)看函數(shù)指針類型,我們平常是如何聲明函數(shù)的?

void*function(int,int);

那么使用typedef取別名呢?用別名取代函數(shù)名的位置即可:

void*(*Fun)(int,int);

不過(guò)這里需要注意用括號(hào)將這個(gè)別名括起來(lái),并在前面加*號(hào)。

總結(jié)

至此,相信你對(duì)typedef的使用有了更清晰的認(rèn)識(shí)了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • typedef
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    9682
  • main
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    6350
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    CYW55513是否支持linux4.4?

    開(kāi)始支持55513的驅(qū)動(dòng)版本是Infineon Linux Wi-Fi驅(qū)動(dòng)程序(FMAC)(v2024_1115) 但在發(fā)行說(shuō)明中有一句話 從內(nèi)核版本 4.14 到內(nèi)核版本 6.1.97 的反向移植支持 說(shuō)明backport是不支持4.4的,我想確認(rèn)下是否有驅(qū)動(dòng)能支持l
    發(fā)表于 06-05 07:26

    使用FX3 SDK發(fā)布源代碼是否違反許可?

    使用 FX3 SDK 發(fā)布源代碼是否違反許可? CYPRESS?EZ-USB? FX3 SDK1.3licenselicense.txt ”4. 專有權(quán)利; 到“您同意對(duì)源代碼保密。” 那里寫(xiě)著一句話,所以我想問(wèn)下以確定。
    發(fā)表于 05-08 06:54

    求助,關(guān)于ADS1232的PDWN問(wèn)題求解

    各位專家好!請(qǐng)教個(gè)問(wèn)題: 在ADS1232的數(shù)據(jù)手冊(cè)中看到一句話,“AVDD must be powered up at least 10us before PDWN goes high
    發(fā)表于 02-13 08:20

    想讀ADS1248寄存器寫(xiě)入的值,是否必須改變SPI工作模式?

    我在ADS1248手冊(cè)的53頁(yè)看到這樣的一句話,It is not possible to use the full-duplex nature of the SPI interface when
    發(fā)表于 01-09 07:45

    使用ADS1220設(shè)計(jì)款電路用來(lái)采集個(gè)電阻橋式傳感器,使用內(nèi)部的2.048V基準(zhǔn)作為基準(zhǔn)電壓?

    請(qǐng)教個(gè)問(wèn)題。我使用ADS1220設(shè)計(jì)款電路用來(lái)采集個(gè)電阻橋式傳感器。設(shè)計(jì)的時(shí)候我想使用內(nèi)部的2.048V基準(zhǔn)作為基準(zhǔn)電壓,以下為電路圖。 但是我在看技術(shù)手冊(cè)的時(shí)候,有這么一句話
    發(fā)表于 01-06 06:00

    ADS1232的XTAL1和XTAL2怎么接?

    打算用到外部時(shí)鐘,這里該如何接了,我看到一句話 那么是不是需要單片機(jī)的I/O口要連到XTAL1上才行了?? 正確的接法是不是Xtal1和XTAL2間接個(gè)晶振,然后還需要單片機(jī)個(gè)口線接到XTAL1? 單片機(jī)給什么信號(hào)能讓它用外部晶振了?給高?? 因?yàn)閄TAL1接低的話
    發(fā)表于 12-20 12:35

    福田汽車2025合作伙伴大會(huì)有哪些看點(diǎn)

    2024行將收官,各商用車企業(yè)的年會(huì)也將召開(kāi),日前商用汽車新聞傳媒收到福田汽車2025全球合作伙伴大會(huì)的邀請(qǐng)函,著實(shí)震驚,只因開(kāi)頭第一句話:把不可能變成可能!
    的頭像 發(fā)表于 12-02 14:39 ?627次閱讀

    晶科能源N型TOPCon技術(shù)為什么能領(lǐng)跑行業(yè)

    晶科能源在N型TOPCon的領(lǐng)導(dǎo)者地位,用一句話形容就是:領(lǐng)先行業(yè)6個(gè)月!
    的頭像 發(fā)表于 11-21 11:08 ?722次閱讀
    晶科能源N型TOPCon技術(shù)為什么能領(lǐng)跑行業(yè)

    開(kāi)關(guān)電源布線 一句話:要運(yùn)行最穩(wěn)定、波形最漂亮、電磁兼容性最好

    開(kāi)關(guān)電源在布線上最大的特點(diǎn)是拓?fù)湟鸬母哳l(高壓)強(qiáng)電流與控制級(jí)的弱電信號(hào)交織在起,首先要保證強(qiáng)電流的存在不干擾電源內(nèi)部的控制信號(hào),其次要盡量減少對(duì)外部的干擾(EMC)。一句話:要運(yùn)行最穩(wěn)定、波形
    的頭像 發(fā)表于 10-28 14:06 ?1767次閱讀
    開(kāi)關(guān)電源布線 <b class='flag-5'>一句話</b>:要運(yùn)行最穩(wěn)定、波形最漂亮、電磁兼容性最好

    雙電源運(yùn)放可以采用正負(fù)電壓絕對(duì)值不相等的電源供電嗎?

    其他的影響么? 還有就是手冊(cè)上的下面一句話怎么理解? Analog Input Voltage Range . . . . . . . . . . . . . . . . . . . . . . . . . . . ±40V 難道我采用-5V,+12V給ina129供電輸
    發(fā)表于 09-12 06:14

    求助,關(guān)于TLE2141的供電問(wèn)題求解

    在TLE2141的DATASHEET中,在供電方面有一句話,Single or Split Supply . . . 4 V to 44 V,此句話不甚明確,雖然DATASHEET中有例子,可證明 此運(yùn)放可5V單電源供電,我本人仍有疑問(wèn),40V單電源供電可否,請(qǐng)各位大拿
    發(fā)表于 09-09 06:46

    想把差分信號(hào)轉(zhuǎn)為單端信號(hào),不是音頻信號(hào),OPA365是否還可以使用呢?

    我想請(qǐng)教下,想把差分信號(hào)轉(zhuǎn)為單端信號(hào)(頻段在100-600KHz),不是音頻信號(hào),這款芯片是否還可以使用呢?另:用TINA想仿真OPA365對(duì)于所需頻段差分信號(hào)得的放大效果是否滿足實(shí)用性,但是搭建不通??赡軇偵鲜?,玩不轉(zhuǎn)這款軟件。所以想取捷徑,問(wèn)問(wèn)諸位,我的第一句話可否回答
    發(fā)表于 08-27 06:33

    知網(wǎng)狀告AI搜索:搜到我家論文題目和摘要,你侵權(quán)了!

    創(chuàng)業(yè)團(tuán)隊(duì)秘塔AI搜索,被知網(wǎng)給告了!足足28頁(yè)的侵權(quán)告知函,總結(jié)一句話就是:貴司的AI搜索,能搜到我家的學(xué)術(shù)文獻(xiàn)題錄及摘要數(shù)據(jù),且沒(méi)經(jīng)我司許可,嚴(yán)重侵權(quán)。
    的頭像 發(fā)表于 08-16 17:47 ?551次閱讀
    知網(wǎng)狀告AI搜索:搜到我家論文題目和摘要,你侵權(quán)了!

    如何設(shè)計(jì)RC去耦的R和C的值?

    如何設(shè)計(jì)RC去耦的R和C的值,最后一句話的意思是負(fù)載電流的變化決定R和C的值,能舉個(gè)例子怎么計(jì)算這個(gè)值嗎?
    發(fā)表于 08-14 07:47

    esp32c3 vdd_spi如何作為gpio11使用?

    看到C3的手冊(cè)里有這樣一句話 當(dāng) VDD_SPI 無(wú)需為外部供電時(shí),VDD_SPI 亦可作為 GPIO11 使用 請(qǐng)問(wèn) 怎么設(shè)置呢? 在 arduino 中設(shè)定 pinMode(11
    發(fā)表于 06-17 06:27