哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

typedef與#define有什么差異嗎

冬至配餃子 ? 來源:最后一個(gè)bug ? 作者:bug菌 ? 2022-08-11 14:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近在開發(fā)中使用typedef的時(shí)候掉了一次坑,這里記錄一下同時(shí)分享給大家~

1、typedef與#define

大部分朋友在編寫代碼的時(shí)候都會(huì)把無符號(hào)類型、結(jié)構(gòu)體等等進(jìn)行"簡(jiǎn)化",要么用宏定義進(jìn)行文本替換,要么就通過typedef來定義一個(gè)類型別名。

參考代碼:

pYYBAGL0oiKAF0AlAAB94J8Fr1A803.png

似乎在一般人眼里兩種方式并沒有什么區(qū)別,有些人習(xí)慣用宏,有些人習(xí)慣用typedef,甚至一套代碼中還出現(xiàn)兩種定義,不過使用typedef來兼容不同平臺(tái)的類型更加的專業(yè)。

兩者的區(qū)別其實(shí)還是很明顯的,只是大部分人在編碼的過程中沒有遇到兩者差異的情況,

那么這里就舉個(gè)例子:

參考代碼:

pYYBAGL0ojWAIYyfAACxDZDrVcM678.png

如果typedef與#define沒啥差異的話,那么測(cè)試代碼中的Var1與Var2使用方法應(yīng)該是一樣的,但當(dāng)我們使用var2進(jìn)行賦值則編譯不通過。

pYYBAGL0okeALeqiAAB-_jnV8V4600.png

編譯結(jié)果出來你應(yīng)該就明白了,typedef把整個(gè)int*作為了一個(gè)整體,與基本類型int,float等一樣,此時(shí)const修飾的是Var2變量,與int * const等價(jià),其指針?biāo)赶虻牡刂窡o法改變,但內(nèi)容*Var的內(nèi)容可以進(jìn)行修改。

同樣還有一個(gè)類似且非常值得注意的地方:

參考代碼:

pYYBAGL0olqAKaiNAACU8LglwYI762.png

問題就處在pVar4的定義上,此時(shí)pVar4僅僅只是一個(gè)int類型而非int*類型,這也是宏定義所帶來的弊端。

這樣大家應(yīng)該對(duì)typedef定義的整體類型與#define定義的宏有了一個(gè)較好的理解了吧。

2、數(shù)組類型是typdef專屬?

順便問了一下同事:你覺得typedef還有與#define不同的地方嗎?他想了想,回答道 : typedef可以直接定義數(shù)組類型,而#define不能。他的回答也對(duì),但是也不完全對(duì):

參考代碼:

poYBAGL0onSAPD6gAAEL4i4ezEU399.png

因?yàn)楹甓x無法像普通定義變量那樣:"類型變量"的形式,所以認(rèn)為同事的說法也算對(duì),不過對(duì)于如上面代碼的宏定義來定義變量,其實(shí)也差別不大吧。

poYBAGL0ooWARUSBAAB0FqdAZz0370.png



審核編輯:劉清

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

    關(guān)注

    6

    文章

    1040

    瀏覽量

    57135
  • typedef
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    9903
  • float
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    8021
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    單片機(jī)IO配置不同速度啥區(qū)別

    3個(gè),有些4個(gè)。一般定義在xxx_gpio.h文件中。 #define GPIO_Speed_2MHzGPIO_Speed_Level_1/*!< I/O
    發(fā)表于 12-29 07:45

    Typedef在C語言中的應(yīng)用

    Typedef 在C語言中頻繁用以聲明一個(gè)已經(jīng)存在的數(shù)據(jù)類型的同義字。也可以用預(yù)處理器做類似的事。例如,思考一下下面的例子: #define dPS struct s * typedef
    發(fā)表于 12-22 13:53

    typedef結(jié)構(gòu)體使用

    雖然結(jié)構(gòu)體的出現(xiàn)能夠讓我們一個(gè)更科學(xué)的數(shù)據(jù)結(jié)構(gòu)來管理數(shù)據(jù),但是每次使用結(jié)構(gòu)體都需要struct...,未免顯得有些冗長(zhǎng)和麻煩。typedef的助攻,我們就可以很輕松地給結(jié)構(gòu)體類型起一個(gè)容易理解
    發(fā)表于 12-08 07:04

    #define預(yù)編譯的指令

    #define預(yù)編譯指令 顧名思義,這個(gè)指令的含義是“定義”,大家可以把該指令視為一種文本的替換。詳細(xì)在下面代碼展示 [list=1] [*]//使用該指令定義了一個(gè)數(shù) [*]#define
    發(fā)表于 12-05 07:29

    是德科技PathWave和納米軟件ATECLOUD哪些差異

    平臺(tái),主要針對(duì)儀器儀表的自動(dòng)化測(cè)試以及提供電源模塊、芯片、射頻器件的自動(dòng)化測(cè)試解決方案。這兩個(gè)電子測(cè)試軟件平臺(tái)在定位功能、測(cè)試場(chǎng)景、架構(gòu)部署方面有著明顯差異。 是德科技PathWave 定位與目標(biāo): PathWave: 是一個(gè)綜合性的電子設(shè)計(jì)和測(cè)試軟件平臺(tái)。它覆蓋了從設(shè)計(jì)仿
    的頭像 發(fā)表于 09-08 17:23 ?1126次閱讀
    是德科技PathWave和納米軟件ATECLOUD<b class='flag-5'>有</b>哪些<b class='flag-5'>差異</b>?

    不同類型的電能質(zhì)量在線監(jiān)測(cè)裝置數(shù)據(jù)驗(yàn)證頻率差異

    ? 電能質(zhì)量在線監(jiān)測(cè)裝置的類型劃分,通常基于 應(yīng)用場(chǎng)景(電網(wǎng)側(cè) / 用戶側(cè))、監(jiān)測(cè)功能(通用型 / 專項(xiàng)型)、電壓等級(jí)(高壓 / 中低壓) 三大維度。不同類型裝置的核心差異在于 “數(shù)據(jù)用途的關(guān)鍵程度
    的頭像 發(fā)表于 09-04 11:55 ?662次閱讀

    屏蔽雙絞線哪些種類?存在哪些差異

    屏蔽雙絞線根據(jù)屏蔽方式的不同,主要分為以下種類,每種在結(jié)構(gòu)、性能和適用場(chǎng)景上存在差異: 1. F/UTP(鋁箔總屏蔽雙絞線) 結(jié)構(gòu):在8芯雙絞線外層包裹一層鋁箔,鋁箔導(dǎo)電面鋪設(shè)接地導(dǎo)線,無獨(dú)立線
    的頭像 發(fā)表于 08-20 10:38 ?3762次閱讀

    鉛VS無鉛:PCBA加工工藝的6大核心差異,工程師必看

    一站式PCBA加工廠家今天為大家講講PCBA加工鉛工藝與無鉛工藝差異哪些?PCBA加工鉛工藝與無鉛工藝的六大差異。作為擁有20余年P(guān)C
    的頭像 發(fā)表于 08-08 09:25 ?968次閱讀

    萬兆多模光纖傳輸距離哪些差異

    萬兆多模光纖的傳輸距離因光纖類型和應(yīng)用場(chǎng)景不同而有所差異,具體如下: 一、按光纖類型劃分 OM3光纖 帶寬:2000 MHz·km 傳輸距離: 在10 Gbps應(yīng)用中,最大傳輸距離為 300米
    的頭像 發(fā)表于 08-07 09:48 ?2399次閱讀

    自動(dòng)化測(cè)試平臺(tái)中TestCenter和ATECLOUD哪些差異?

    TestCenter和ATECLOUD雖然都是自動(dòng)化測(cè)試平臺(tái),但兩者在試用領(lǐng)域、技術(shù)架構(gòu)、功能特性等方面具有很大的差異性,兩者的面向客戶也有所不同。本文將簡(jiǎn)單分析兩個(gè)平臺(tái)的特點(diǎn)和差異
    的頭像 發(fā)表于 07-25 09:54 ?873次閱讀
    自動(dòng)化測(cè)試平臺(tái)中TestCenter和ATECLOUD<b class='flag-5'>有</b>哪些<b class='flag-5'>差異</b>?

    鐵芯VS無鐵芯:直線電機(jī)模組核心差異全解析

    在直線電機(jī)模組的大家族中,鐵芯直線電機(jī)模組和無鐵芯直線電機(jī)模組是兩種常見且各具特色的類型。它們?cè)诮Y(jié)構(gòu)設(shè)計(jì)、性能表現(xiàn)以及應(yīng)用場(chǎng)景等方面存在顯著差異,了解這些差異對(duì)于在實(shí)際應(yīng)用中做出合適的選擇至關(guān)重要
    的頭像 發(fā)表于 07-22 11:37 ?1868次閱讀
    <b class='flag-5'>有</b>鐵芯VS無鐵芯:直線電機(jī)模組核心<b class='flag-5'>差異</b>全解析

    ArkUI-X平臺(tái)差異

    邏輯不同,或使用了不支持跨平臺(tái)的API,就需要根據(jù)平臺(tái)不同進(jìn)行一定代碼差異化適配。當(dāng)前僅支持在代碼運(yùn)行態(tài)進(jìn)行差異化,接下來詳細(xì)介紹場(chǎng)景及如何差異化適配。 使用場(chǎng)景 平臺(tái)差異化適用于以下
    發(fā)表于 06-10 23:08

    配置文件的差異介紹

    配置文件的差異 FA模型應(yīng)用在config.json文件中描述應(yīng)用的基本信息,一個(gè)應(yīng)用工程中可以創(chuàng)建多個(gè)Module,每個(gè)Module中都有一份config.json文件。config.json由
    發(fā)表于 06-05 06:50

    RoHS與ELV什么差異

    RoHS的標(biāo)準(zhǔn)RoHS(RestrictionofHazardousSubstances)是一項(xiàng)由歐盟立法制定的強(qiáng)制性標(biāo)準(zhǔn),全稱為《關(guān)于限制在電子電氣設(shè)備中使用某些有害成分的指令》。該標(biāo)準(zhǔn)的核心目標(biāo)是限制在電子電氣產(chǎn)品制造過程中使用特定的有害物質(zhì),以減少對(duì)環(huán)境和人類健康的潛在危害。RoHS標(biāo)準(zhǔn)的應(yīng)用范圍RoHS指令涵蓋了廣泛的產(chǎn)品類別,包括但不限于大型家用電
    的頭像 發(fā)表于 05-12 15:44 ?1555次閱讀
    RoHS與ELV<b class='flag-5'>有</b>什么<b class='flag-5'>差異</b>?

    鹵素檢測(cè):PCB鹵與無鹵的差異

    在當(dāng)代電子產(chǎn)業(yè)中,印制電路板(PCB)是核心組件之一,其材料與工藝的革新對(duì)電子設(shè)備的性能與可持續(xù)性有著深遠(yuǎn)影響。鹵與無鹵PCB作為當(dāng)前市場(chǎng)上的兩大類,各自有著獨(dú)特的特性與應(yīng)用范圍。鹵與無鹵PCB
    的頭像 發(fā)表于 04-28 20:17 ?3500次閱讀
    鹵素檢測(cè):PCB<b class='flag-5'>有</b>鹵與無鹵的<b class='flag-5'>差異</b>
    昭平县| 类乌齐县| 黔南| 葫芦岛市| 榆社县| 大安市| 和田市| 建始县| 松阳县| 大兴区| 鲁甸县| 池州市| 乌苏市| 玉环县| 横山县| 绍兴县| 鹤庆县| 托克托县| 宁南县| 绥芬河市| 平利县| 铁岭市| 西林县| 玉龙| 商河县| 仲巴县| 漳州市| 巫山县| 保亭| 新干县| 宜州市| 波密县| 锡林郭勒盟| 剑川县| 沧源| 浮山县| 肥城市| 揭东县| 青铜峡市| 神池县| 乌兰浩特市|