在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

typedef與#define有什么差異嗎

冬至配餃子 ? 來源:最后一個bug ? 作者:bug菌 ? 2022-08-11 14:34 ? 次閱讀

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

1、typedef與#define

大部分朋友在編寫代碼的時候都會把無符號類型、結構體等等進行"簡化",要么用宏定義進行文本替換,要么就通過typedef來定義一個類型別名。

參考代碼:

pYYBAGL0oiKAF0AlAAB94J8Fr1A803.png

似乎在一般人眼里兩種方式并沒有什么區別,有些人習慣用宏,有些人習慣用typedef,甚至一套代碼中還出現兩種定義,不過使用typedef來兼容不同平臺的類型更加的專業。

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

那么這里就舉個例子:

參考代碼:

pYYBAGL0ojWAIYyfAACxDZDrVcM678.png

如果typedef與#define沒啥差異的話,那么測試代碼中的Var1與Var2使用方法應該是一樣的,但當我們使用var2進行賦值則編譯不通過。

pYYBAGL0okeALeqiAAB-_jnV8V4600.png

編譯結果出來你應該就明白了,typedef把整個int*作為了一個整體,與基本類型int,float等一樣,此時const修飾的是Var2變量,與int * const等價,其指針所指向的地址無法改變,但內容*Var的內容可以進行修改。

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

參考代碼:

pYYBAGL0olqAKaiNAACU8LglwYI762.png

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

這樣大家應該對typedef定義的整體類型與#define定義的宏有了一個較好的理解了吧。

2、數組類型是typdef專屬?

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

參考代碼:

poYBAGL0onSAPD6gAAEL4i4ezEU399.png

因為宏定義無法像普通定義變量那樣:"類型變量"的形式,所以認為同事的說法也算對,不過對于如上面代碼的宏定義來定義變量,其實也差別不大吧。

poYBAGL0ooWARUSBAAB0FqdAZz0370.png



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼
    +關注

    關注

    6

    文章

    957

    瀏覽量

    54911
  • typedef
    +關注

    關注

    0

    文章

    26

    瀏覽量

    9558
  • float
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7785
收藏 人收藏

    評論

    相關推薦

    C++ QT開發,IC讀寫器程序

    0x10#define NEEDHALT 0x20 //#define NEEDSERIAL 0x08#define EXTERNKEY 0x10 //讓讀寫器發出聲音typedef
    的頭像 發表于 12-30 14:55 ?116次閱讀
    C++ QT開發,IC讀寫器程序

    ESD HBM測試差異較大的結果分析

    ESD HBM測試結果差異較大的原因,通常包括設備/儀器差異、?校準和維護水平不同、?環境條件差異、?測試樣本差異、?測試操作員技能和經驗差異
    的頭像 發表于 11-18 15:17 ?561次閱讀
    ESD HBM測試<b class='flag-5'>差異</b>較大的結果分析

    SV中define宏定義的用法

    SV中使用預處理指令`define來定義宏,宏可以用來創建文本替換。根據場景不同,`define主要用來定義常量、簡化復雜的表達式或代碼段以及提高代碼的可移植性。其基本語法為:
    的頭像 發表于 10-21 14:22 ?755次閱讀

    LM358M和LM358MX什么差異?

    請教一下,LM358M / MX差異
    發表于 09-24 06:02

    不同行業的配電室什么差異

    蜀瑞創新:不同行業的配電室在多個方面存在顯著的差異,這些差異主要體現在配電室的規模、功能、設備配置、安全性要求以及運行管理等方面。每種類型的配電室都會根據具體的應用場景和行業特點進行定制化設計。
    的頭像 發表于 08-29 16:55 ?328次閱讀
    不同行業的配電室<b class='flag-5'>有</b>什么<b class='flag-5'>差異</b>?

    typedef和struct啥區別

    在C語言中, typedef 和 struct 是兩個非常重要的關鍵字,它們在定義數據結構時扮演著關鍵的角色。然而,它們之間一些明顯的區別。 1. struct 關鍵字 struct (結構體
    的頭像 發表于 08-20 11:00 ?1320次閱讀

    typedef struct和直接struct的區別

    在C語言中, typedef 和 struct 是兩種不同的關鍵字,它們在定義和使用上有著明顯的區別。 typedef struct 和直接 struct 在 C 語言中用于定義結構體類型,但它們在
    的頭像 發表于 08-20 10:58 ?3070次閱讀

    tvs管單向雙向什么差異

    可以分為單向TVS和雙向TVS兩種類型,它們在結構、工作原理、應用場景等方面存在一些差異。 一、單向TVS和雙向TVS的結構差異 單向TVS的結構 單向TVS管是一種單極性的保護器件,其內部結構主要由一個PN結組成。PN結的一端連接到陽極,另一端連接到陰極。當陽極電壓高于
    的頭像 發表于 08-01 09:42 ?2305次閱讀

    開關柜和環網柜之間哪什么差異?

    開關柜、環網柜之間的差異分析
    的頭像 發表于 07-16 15:37 ?613次閱讀
    開關柜和環網柜之間<b class='flag-5'>有</b>哪什么<b class='flag-5'>差異</b>?

    FSMC_Bank1和FSMC_Bank1E沒有定義是怎么回事?

    (STM32F429_439xx) #define FMC_Bank1((FMC_Bank1_TypeDef *) FMC_Bank1_R_BASE) #define FMC_Bank1E
    發表于 05-15 08:00

    QNX與Linux基礎差異對比

    對于QNX系統和Linux系統的內核差異,我們拋開宏內核、微內核之類的爭議不談。單純從開發應用的角度而言,QNX和Linux系統的差異到底多大,在開發的時候需要注意哪些細節問題?
    發表于 04-17 10:52 ?877次閱讀

    C語言中的typedef的應用

    C 語言提供了 typedef 關鍵字,您可以使用它來為類型取一個新的名字。下面的實例為單字節數字定義了一個術語 BYTE。
    發表于 03-06 11:34 ?426次閱讀
    C語言中的<b class='flag-5'>typedef</b>的應用

    求助,英飛凌單片機程序開發和STM32程序開發之間多少差異

    英飛凌單片機程序開發和STM32程序開發之間多少差異?英飛凌單片機有沒有類似庫函數的東西?
    發表于 02-05 07:14

    BUCK電路輕載條件下DCM與CCM的差異哪些?

    BUCK電路輕載條件下DCM與CCM的差異哪些? 在討論BUCK電路輕載條件下DCM(不連續導通模式)與CCM(連續導通模式)的差異之前,我們首先要了解BUCK電路的工作原理和兩種不同的工作模式
    的頭像 發表于 01-31 18:18 ?2535次閱讀

    板式換熱器和管式換熱器的差異哪些?

    板式換熱器和管式換熱器的差異哪些? 板式換熱器和管式換熱器是兩種常見的換熱設備,用于在工業生產中進行熱能傳遞。它們在結構、工作原理、適用場合等方面存在一些差異。接下來將詳細介紹板式換熱器和管式
    的頭像 發表于 01-30 17:26 ?3438次閱讀
    主站蜘蛛池模板: 成人在线一区二区三区 | 天堂在线中文 | 免费黄色在线观看 | 国产精品 色 | 黄色天天影视 | 看片久久| 一级特黄色毛片免费看 | 色天天综合 | 久久婷婷国产一区二区三区 | 亚洲成人伊人网 | 天天操天天插天天干 | 大香线蕉97久久 | 六月丁香激情综合成人 | 又粗又硬又猛又黄的免费视频黑人 | 亚洲色图狠狠干 | 中文字幕在线观看第一页 | 亚洲网站免费 | 久久精品伊人波多野结 | 国产精品资源 | 乱人伦小说短篇 | 男人的天堂黄色 | 97久久天天综合色天天综合色hd | 九色中文 | 波多野结衣在线网站 | bt 另类 专区 欧美 制服 | 国产区一区二区三 | 伊人天伊人天天网综合视频 | 26uuu影院亚洲欧美综合 | 成色网| 亚洲第一中文字幕 | 亚洲人成www在线播放 | 国产香蕉视频在线观看 | 亚洲精品视频专区 | 四虎影视免费 | 国产一级特黄全黄毛片 | 五月天色婷婷丁香 | 午夜久| 麻生希痴汉电车avop130 | 成人国产精品一级毛片视频 | www.男人| 26uuu另类亚洲欧美日本一 |