国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

typedef 和 # define 用法區(qū)別

這篇具有很好參考價值的文章主要介紹了typedef 和 # define 用法區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

博主在??途W(wǎng)上看到了一道有關typedef和# define題目。發(fā)現(xiàn)有很多初學的小伙伴對兩者的用法不是特別清楚,所以博主在這總結以下相關用法和區(qū)別。
話不多說,先來看看原題吧?。ù鸢竎)
typedef 和 # define 用法區(qū)別

1. 原理不同

#define是C語言中定義的語法,是預處理指令,在預處理時進行簡單而機械的替換,不作正確性檢查,只有在編譯已被展開的源程序時才會發(fā)現(xiàn)可能的錯誤并報錯。

例如:
#define PI 3.1415926
程序中的:area=PI *r *r 會替換為3.1415926 *r *r
如果你把#define語句中的數(shù)字9 寫成字母g 預處理也照樣帶入。

typedef是關鍵字,在編譯時處理,有類型檢查功能。它在自己的作用域內(nèi)給一個已經(jīng)存在的類型一個別名,但不能在一個函數(shù)定義里面使用typedef。用typedef定義數(shù)組、指針、結構等類型會帶來很大的方便,不僅使程序書寫簡單,也使意義明確,增強可讀性。

1.1 typedef int * int_ptr;與#define int_ptr int * 詳細講解

在開頭我們看到的問題中typedef int * int_ptr;與#define int_ptr int *
作用都是用int_ptr代表 int * ,但是二者不同,正如前面所說 ,#define在預處理 時進行簡單的替換,而typedef不是簡單替換 ,而是采用如同定義變量的方法那樣來聲明一種類型。也就是說;

#define int_ptr int *
int_ptr a, b; //相當于int * a, b; 只是簡單的宏替換

typedef int* int_ptr;
int_ptr a, b; //a, b 都為指向int的指針,typedef為int* 引入了一個新的助記符

這也說明了為什么下面觀點成立文章來源地址http://www.zghlxwxcb.cn/news/detail-479055.html

 typedef int * pint ;
#define PINT int *

那么:
const pint p ;//p不可更改,但p指向的內(nèi)容可更改
const PINT p ;//p可更改,但是p指向的內(nèi)容不可更改。

pint是一種指針類型 const pint p 就是把指針給鎖住了 p不可更改
而const PINT p 是const int * p 鎖的是指針p所指的對象。

2. 功能不同

  • typedef用來定義類型的別名,起到類型易于記憶的功能。另一個功能是定義機器無關的類型。如定義一個REAL的浮點類型,在目標機器上它可以獲得最高的精度:typedef long double REAL, 在不支持long double的機器上,看起來是這樣的,typedef double REAL;在不支持double的機器上,是這樣的,typedef float REA
  • #define不只是可以為類型取別名,還可以定義常量、變量、編譯開關等。

3. 作用域不同

  • #define沒有作用域的限制,只要是之前預定義過的宏,在以后的程序中都可以使用,而typedef有自己的作用域。

到了這里,關于typedef 和 # define 用法區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • struct和typedef struct的區(qū)別

    在了解struct和typedef struct之前,我們先學習下typedef的定義和用法。 typedef為C語言的,作用是為一種數(shù)據(jù)類型定義一個新名字。這里的數(shù)據(jù)類型包括內(nèi)部數(shù)據(jù)類型(int,char等)和自定義的數(shù)據(jù)類型(struct等)。 C語言里typedef的解釋是用來聲明新的類型名來代替已有的類姓

    2024年02月10日
    瀏覽(14)
  • C語言之#define用法入門詳解

    C語言之#define用法入門詳解

    在C語言中,常量是使用頻率很高的一個量。常量是指在程序運行過程中,其值不能被改變的量。常量常使用#define來定義。 使用#define定義的常量也稱為符號常量,可以提高程序的運行效率。 其常見的用法包括兩種,分別是: 第一種語法就是定義符號常量, 例如: 此后直到

    2024年02月10日
    瀏覽(20)
  • define, parameter, localparam, specparam, defpara用法簡析

    define, parameter, localparam, specparam, defpara用法簡析

    在Verilog中,parameter既不屬于變量范疇也不屬于線網(wǎng)范疇,經(jīng)常用來定義一個標志符代表一個 常量 ,當一個模塊被另一個模塊引用例化時, 高層模塊 可以對 低層模 塊的參數(shù)值進行改寫。這樣就允許在編譯時將不同的參數(shù)傳遞給多個相同名字的模塊,而不用單獨為只有參數(shù)不

    2024年02月16日
    瀏覽(16)
  • 大模型有什么用,從技術上看

    大模型有什么用,從技術上看

    一、 大模型有什么用 目前為止,大模型主要是以NLP為主,因為NLP拋棄了RNN序列依賴的問題,采用了Attention is All you need的Transformer結構,使得NLP能夠演變出更多大模型。圖像領域也不甘示弱,CNN大模型也開始陸續(xù)涌現(xiàn)。 模型碎片化,大模型提供預訓練方案。目前AI面對行業(yè)、

    2024年02月08日
    瀏覽(10)
  • 整體上看,現(xiàn)代化的AI+醫(yī)療需要哪些突破?

    作者:禪與計算機程序設計藝術 及背景介紹 AI(Artificial Intelligence)在醫(yī)療領域占據(jù)著越來越重要的地位。近年來,隨著醫(yī)療數(shù)據(jù)量的增加、設備的普及、算法模型的創(chuàng)新等諸多因素的影響,以人工智能技術驅(qū)動的醫(yī)療診斷技術也呈現(xiàn)出蓬勃發(fā)展的態(tài)勢。但僅僅依靠人工智能

    2024年02月07日
    瀏覽(21)
  • 手機屏幕不夠大,抖音可以投屏到電視上看嗎?沒問題

    手機屏幕不夠大,抖音可以投屏到電視上看嗎?沒問題

    據(jù)QuestMobile統(tǒng)計,抖音2023年5月月活用戶規(guī)模達到7億多,月人均使用時長達到36.6小時。粗糙計算,每天都在刷抖音。雖然抖音現(xiàn)在除了手機版,也推出了電腦網(wǎng)頁版,但是對于刷抖音視頻的重度用戶來說,盯著手機屏幕或電腦屏幕還是會加重眼疲勞或頸椎疲勞,能不能再輕松

    2024年02月19日
    瀏覽(23)
  • 【C】typedef 關鍵字 typedef int (*Operation)(int, int);

    typedef 是C語言中的一個,它的主要作用是 創(chuàng)建類型別名 。是 type definition(類型定義)的縮寫。目的是更清晰地表示數(shù)據(jù)類型,提高代碼的可讀性和可維護性。 1)基本語法 typedef 的基本語法如下: 這里 existing_type 是已存在的數(shù)據(jù)類型,而 new_type 則是你為這個已存在類

    2024年01月23日
    瀏覽(19)
  • #Ts篇:符號`?.` 、`??` 、 `!` 、 `?: `的用法和區(qū)別

    ?. 定義 可選屬性操作符 例如:obj?.prop。 如果 obj = null || undefined ==== undefined, 在上面的示例中, person1.age 和 person2.age 都可能為 undefined, 因為 age 屬性是可選的。 而在訪問 job.title 屬性時,我們使用了可選屬性訪問操作符 ?. , 如果 person1.job 或 person2.job 為 null 或 undefined,

    2024年02月08日
    瀏覽(76)
  • 簡單記錄下“<<”、“>>”和“>>>”的用法和區(qū)別

    這里給出兩種記憶方式,自己看哪種適合自己 方式一 在帶符號的移位中,無論正數(shù)還是負數(shù),移位后符號不變,數(shù)值變化: 正數(shù):左移右移都補0; 負數(shù): 原碼 左移右移都補0, ? ? ? ? ? ? 反碼 左移右移都補1, ? ? ? ? ? ? 補碼 左移補0,右移補1; 方式二 \\\"\\\"是指:向左

    2024年02月06日
    瀏覽(17)
  • Comparable和Comparator的用法和區(qū)別

    Comparable和Comparator的用法和區(qū)別

    文章目錄 前言 一 .Comparable 1.Comparable是什么? 2.comparable有用嗎? 有用的話它有什么用? 沒學compar之前的解決辦法 : ?2.在學習了comparable之后 二.comparator 1.comparator是什么? 2.comparator怎么用? 3.兩者的差異 總結 在這里給大家整理了一下comparable和comparator的用法和區(qū)別,這些在以后代碼

    2024年02月05日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包