chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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ì)把無符號類型、結(jié)構(gòu)體等等進(jìn)行"簡化",要么用宏定義進(jìn)行文本替換,要么就通過typedef來定義一個(gè)類型別名。

參考代碼:

pYYBAGL0oiKAF0AlAAB94J8Fr1A803.png

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

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

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

參考代碼:

pYYBAGL0ojWAIYyfAACxDZDrVcM678.png

如果typedef與#define沒啥差異的話,那么測試代碼中的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)該對typedef定義的整體類型與#define定義的宏有了一個(gè)較好的理解了吧。

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

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

參考代碼:

poYBAGL0onSAPD6gAAEL4i4ezEU399.png

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

poYBAGL0ooWARUSBAAB0FqdAZz0370.png



審核編輯:劉清

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

    關(guān)注

    6

    文章

    980

    瀏覽量

    56436
  • typedef
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    9802
  • float
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

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

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

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

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

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

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

    配置文件的差異介紹

    配置文件的差異 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

    不同行業(yè)的數(shù)字工廠哪些特點(diǎn)和差異?

    各行業(yè)的獨(dú)特差異也將持續(xù)推動(dòng)定制化解決方案的創(chuàng)新,以滿足不同行業(yè)日益增長的數(shù)字化轉(zhuǎn)型需求。對于設(shè)備管理系統(tǒng)而言,需要深入理解各行業(yè)數(shù)字工廠的特點(diǎn)和差異,針對性地進(jìn)行優(yōu)化和升級,為各行業(yè)數(shù)字工廠的穩(wěn)定運(yùn)行和高效發(fā)展提供堅(jiān)實(shí)保障。
    的頭像 發(fā)表于 04-17 10:29 ?467次閱讀
    不同行業(yè)的數(shù)字工廠<b class='flag-5'>有</b>哪些特點(diǎn)和<b class='flag-5'>差異</b>?

    DLP Discovery 4100開發(fā)套件和評估模塊之間什么差異呢?

    評估模塊和DLP650LNIR DMD 評估模塊的結(jié)合也可以用于像素控制,那這兩者什么差異呢,比如開發(fā)難度,耐受功率,我們想最好用matlab或Labview控制。謝謝
    發(fā)表于 02-28 06:19

    DLPC3439和DLPC3479具體哪些差異呢?搭配DLP芯片怎么配對呢?

    請問:DLPC3439和DLPC3479具體哪些差異呢?搭配DLP芯片怎么配對呢?
    發(fā)表于 02-21 07:40

    C++ QT開發(fā),IC讀寫器程序

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

    DAC108S085設(shè)定為第一級輸出時(shí),不同通道差異,為什么?

    DAC108S085設(shè)定為第一級輸出時(shí),不同通道差異 1.24V基準(zhǔn) ABCD四個(gè)通道都接近1.2mV EFG接近0.9mV H是0.3mV DAC的偏差是越靠后越大?
    發(fā)表于 12-18 07:18

    ESD HBM測試差異較大的結(jié)果分析

    ESD HBM測試結(jié)果差異較大的原因,通常包括設(shè)備/儀器差異、?校準(zhǔn)和維護(hù)水平不同、?環(huán)境條件差異、?測試樣本差異、?測試操作員技能和經(jīng)驗(yàn)差異
    的頭像 發(fā)表于 11-18 15:17 ?1642次閱讀
    ESD HBM測試<b class='flag-5'>差異</b>較大的結(jié)果分析

    SV中define宏定義的用法

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

    aic3106在IOVDD=1.8V時(shí)與IOVDD=3.3V時(shí),濾波系數(shù)是否差異?

    aic3106 在IOVDD=1.8V時(shí)與IOVDD=3.3V時(shí),濾波系數(shù)是否差異?寄存器方面是否需要改變?求大神回復(fù)
    發(fā)表于 10-17 08:28