国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    1039

    瀏覽量

    56967
  • typedef
    +關注

    關注

    0

    文章

    26

    瀏覽量

    9877
  • float
    +關注

    關注

    0

    文章

    9

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Typedef在C語言中的應用

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

    typedef結構體使用

    雖然結構體的出現能夠讓我們一個更科學的數據結構來管理數據,但是每次使用結構體都需要struct...,未免顯得有些冗長和麻煩。typedef的助攻,我們就可以很輕松地給結構體類型起一個容易理解
    發表于 12-08 07:04

    #define預編譯的指令

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

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

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

    不同類型的電能質量在線監測裝置數據驗證頻率差異

    ? 電能質量在線監測裝置的類型劃分,通常基于 應用場景(電網側 / 用戶側)、監測功能(通用型 / 專項型)、電壓等級(高壓 / 中低壓) 三大維度。不同類型裝置的核心差異在于 “數據用途的關鍵程度
    的頭像 發表于 09-04 11:55 ?550次閱讀

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

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

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

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

    自動化測試平臺中TestCenter和ATECLOUD哪些差異

    TestCenter和ATECLOUD雖然都是自動化測試平臺,但兩者在試用領域、技術架構、功能特性等方面具有很大的差異性,兩者的面向客戶也有所不同。本文將簡單分析兩個平臺的特點和差異
    的頭像 發表于 07-25 09:54 ?699次閱讀
    自動化測試平臺中TestCenter和ATECLOUD<b class='flag-5'>有</b>哪些<b class='flag-5'>差異</b>?

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

    在直線電機模組的大家族中,鐵芯直線電機模組和無鐵芯直線電機模組是兩種常見且各具特色的類型。它們在結構設計、性能表現以及應用場景等方面存在顯著差異,了解這些差異對于在實際應用中做出合適的選擇至關重要
    的頭像 發表于 07-22 11:37 ?1471次閱讀
    <b class='flag-5'>有</b>鐵芯VS無鐵芯:直線電機模組核心<b class='flag-5'>差異</b>全解析

    ArkUI-X平臺差異

    邏輯不同,或使用了不支持跨平臺的API,就需要根據平臺不同進行一定代碼差異化適配。當前僅支持在代碼運行態進行差異化,接下來詳細介紹場景及如何差異化適配。 使用場景 平臺差異化適用于以下
    發表于 06-10 23:08

    配置文件的差異介紹

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

    鹵素檢測:PCB鹵與無鹵的差異

    在當代電子產業中,印制電路板(PCB)是核心組件之一,其材料與工藝的革新對電子設備的性能與可持續性有著深遠影響。鹵與無鹵PCB作為當前市場上的兩大類,各自有著獨特的特性與應用范圍。鹵與無鹵PCB
    的頭像 發表于 04-28 20:17 ?3022次閱讀
    鹵素檢測:PCB<b class='flag-5'>有</b>鹵與無鹵的<b class='flag-5'>差異</b>

    不同規格的多點位移計技術參數差異?如何選型?

    在邊坡監測、隧道工程或大壩安全領域,選擇一款合適的振弦式多點位移計直接影響監測精度和可靠性。面對VWM-50、VWM-100、VWM-200等多種規格,如何快速區分技術差異并精準選型?一、三大規格
    的頭像 發表于 04-18 12:10 ?811次閱讀
    不同規格的多點位移計技術參數<b class='flag-5'>有</b>何<b class='flag-5'>差異</b>?如何選型?

    不同行業的數字工廠哪些特點和差異

    各行業的獨特差異也將持續推動定制化解決方案的創新,以滿足不同行業日益增長的數字化轉型需求。對于設備管理系統而言,需要深入理解各行業數字工廠的特點和差異,針對性地進行優化和升級,為各行業數字工廠的穩定運行和高效發展提供堅實保障。
    的頭像 發表于 04-17 10:29 ?720次閱讀
    不同行業的數字工廠<b class='flag-5'>有</b>哪些特點和<b class='flag-5'>差異</b>?

    FS32K148HFT0VLQT和FS32K148HAT0MLQT之間的傳導/輻射發射差異

    FS32K148HFT0VLQT 和 FS32K148HAT0MLQT 之間的傳導/輻射發射差異(如果有)?
    發表于 04-04 06:22