最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言詳細分析宏定義的使用

 更新時間:2022年04月21日 11:01:28   作者:清風自在 流水潺潺  
宏定義是用宏名來表示一個字符串,在宏展開時又以該字符串取代宏名,這只是一種簡單的替換。字符串中可以含任何字符,可以是常數(shù),也可以是表達式,預處理程序?qū)λ蛔魅魏螜z查,如有錯誤,只能在編譯已被宏展開后的源程序時發(fā)現(xiàn)

一、C語言中函數(shù)的“缺陷”

實參和形參之間僅僅是值傳遞,因此,函數(shù)中無法直接改變實參。

二、再次理解函數(shù)

函數(shù)是一種代碼復用的手段

  • 把實現(xiàn)某個功能的代碼片段進行封裝(當作一個整體)
  • 給這個代碼片段一個合適的名字(通過名字使用代碼)
  • 定義參數(shù)(定義代碼片段需要處理的問題)

三、C語言中的宏

  • 宏是C語言中代碼復用的補充方式
  • 宏定義語法:#define MACRO(param) code_segment
  • 宏使用語法:MACRO(num);

例如:

#define ADD(a,b) a + b
int main()
{
    int z = ADD(1,2);
    printf("z = %d\n", z);
    return 0;
}

四、宏與函數(shù)的不同

  • 宏不是函數(shù),使用宏沒有函數(shù)調(diào)用的過程
  • 函數(shù)調(diào)用先傳遞參數(shù)值,然后跳轉(zhuǎn)執(zhí)行函數(shù)體,最后返回
  • 使用宏只是單純“代碼復制粘貼”,然后替換參數(shù)
  • 同一個函數(shù),無論調(diào)用多少次,都執(zhí)行相同的函數(shù)體代碼
  • 同一個宏,每次使用都會“復制粘貼”相同代碼

五、編譯器組成簡介

  • 預處理模塊:處理所有宏以及#開頭的語句(復制粘貼替換)
  • 編譯模塊:將C程序翻譯成二進制程序
  • 鏈接模塊:將二進制程序組合成可執(zhí)行程序

六、宏使用示例

用一個簡單的交換兩個數(shù)的值作為例子:

#include <stdio.h>
#define SWAP(a, b)  {int t = a; a = b; b = t;}
int main()
{
    int x = 1;
    int y = 2;
    SWAP(x, y);   // {int t = x; x = y; y = t;}
    printf("x = %d, y = %d\n", x, y);
    return 0;
}

下面為輸出結(jié)果:

七、再論宏常量

#define NAME value

  • 預處理模塊將代碼中出現(xiàn)的NAME標識符替換為value
  • 因此,宏常量在本質(zhì)上與字面量相同(真正意義的常量)

八、小結(jié)

  • 宏是C語言中代碼復用的補充方式
  • 宏不是函數(shù),使用宏沒有函數(shù)調(diào)用的過程
  • 預處理模塊對宏的處理方式:復制粘貼替換
  • 程序中使用宏的地方最終被處理為對應的代碼片段
  • 宏常量的本質(zhì)就是字面量

到此這篇關(guān)于C語言詳細分析宏定義的使用的文章就介紹到這了,更多相關(guān)C語言宏定義內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • 一文帶你了解C語言中static關(guān)鍵字的3個作用

    一文帶你了解C語言中static關(guān)鍵字的3個作用

    static這個關(guān)鍵字是“靜態(tài)”的意思,在C語言里主要有3個作用。這篇文章主要通過一些簡單示例為大家詳細講講這3個左右,感興趣的小伙伴可以了解一下
    2023-04-04
  • C++11時間日期庫chrono的使用

    C++11時間日期庫chrono的使用

    chrono是C++11中新加入的時間日期操作庫,可以方便地進行時間日期操作,本文詳細的介紹了一下如何使用,感興趣的可以了解一下
    2022-01-01
  • C語言實現(xiàn)關(guān)機小程序

    C語言實現(xiàn)關(guān)機小程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)關(guān)機小程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C語言深入探究自定義類型之結(jié)構(gòu)體與枚舉及聯(lián)合

    C語言深入探究自定義類型之結(jié)構(gòu)體與枚舉及聯(lián)合

    今天我們來學習一下自定義類型,自定義類型包括結(jié)構(gòu)體、枚舉、聯(lián)合體,小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考
    2022-05-05
  • C語言中的四種常量詳解

    C語言中的四種常量詳解

    本篇文章是c語言基礎篇,主要講述一下常量,常量即不可被直接修改的量(const修飾的常變量可間接修改,后續(xù)文章會繼續(xù)說明)請大家持續(xù)關(guān)注腳本之家
    2021-10-10
  • C語言輸入一個數(shù)判斷是否為素數(shù)的多種方法

    C語言輸入一個數(shù)判斷是否為素數(shù)的多種方法

    素數(shù)是只能被1和它自己本身整除,不能被其他自然數(shù)整除的大于1的正整數(shù),下面這篇文章主要給大家介紹了關(guān)于C語言輸入一個數(shù)判斷是否為素數(shù)的多種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • C語言中函數(shù)返回值不一致問題

    C語言中函數(shù)返回值不一致問題

    這篇文章主要介紹了C語言中函數(shù)返回值不一致問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語言實現(xiàn)水波紋效果

    C語言實現(xiàn)水波紋效果

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)水波紋效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C++軟件添加dump調(diào)試打印日志(推薦)

    C++軟件添加dump調(diào)試打印日志(推薦)

    下面小編就為大家?guī)硪黄狢++軟件添加dump調(diào)試打印日志(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 最新評論

    镶黄旗| 开江县| 共和县| 雷州市| 北辰区| 隆子县| 云浮市| 沙田区| 华亭县| 长子县| 来安县| 类乌齐县| 文安县| 娱乐| 临泽县| 德江县| 平远县| 沾益县| 福州市| 油尖旺区| 临颍县| 太和县| 巴马| 百色市| 明水县| 宁强县| 临泉县| 福泉市| 突泉县| 枝江市| 肇州县| 青神县| 山阴县| 建宁县| 大姚县| 巴林左旗| 社旗县| 四子王旗| 和平县| 杂多县| 化隆|