c語言宏作用域,c語言中宏定義的作用

本文目錄一覽:

C語言多個源程序宏定義的作用範圍

宏定義分類:

(1)不帶參數的宏定義

形式: #define 宏名 [宏體]

功能:可以實現用宏體代替宏名

使用實例: #define TRUE 1

作用:程序中多次使用TRUE,如果需要對TRUE的值進行修改,只需改動一處就可以了

(2)帶參數的宏: #define 宏名 ( 參數表) [宏體]

宏定義作用:

(1)方便程序的修改

上面的#define TRUE 1就是一個實例

(2)提高程序的運行效率

宏定義的展開是在程序的預處理階段完成的,無需運行時分配內存,能夠部分實現函數的功能,卻沒有函數調用的壓棧、彈棧開銷,效率較高

(3)增強可讀性

這點不言而喻,當我們看到類似PI這樣的宏定義時,自然可以想到它對應的是圓周率常量

(4)字元串拼接

例如:

#define CAT(a,b,c) a##b##c

main()

{

printf(“%d\n” CAT(1,2,3));

printf(“%s\n”, CAT(‘a’, ‘b’, ‘c’);

}

程序的輸出會是:

123

abc

(5)參數轉化成字元串

示例:

#defind CAT(n) “abc”#n

main()

{

printf(“%s\n”, CAT(15));

}

輸出的結果會是

abc15

(6)用於程序調試跟蹤

常見的用於調試的宏有,_ L I N E _,_ F I L E _,_ D A T E _,_ T I M E _,_ S T D C _

(7)實現可變宏

舉例來說:

#define PR(…) printf(_ _VA_ARGS_ _)

C語言宏的作用域

C的宏也有做用域之說?我倒是真不知道呀,搞了這麼多年的C

我只知道,宏定義從定義開始到取消定義止,它都是有效的,它是在編譯之前預處理替換的,不是在運行中的東西,對於最終的執行程序而言,它並不知道有宏這麼個東西

你可以做個簡單的試驗:

#include stdio.h

void main()

{

do

{

#define TEST 123

printf(“%d\n”,TEST);

}while(0);

#ifndef TEST

printf(“有生存周期”);

#else

printf(“沒有生存周期%d”,TEST);

#endif

}

/////////////運行結果:

123

沒有生存周期123

C語言中,提前終止宏定義作用域的命令是?

在C語言中,宏定義的作用域是從定義的那一行開始直到文件末尾,

但我們可以用#undef來提前終止宏定義的作用域。

請採納,謝謝。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/254497.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 17:42
下一篇 2024-12-14 17:42

相關推薦

  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python中的隊列定義

    本篇文章旨在深入闡述Python中隊列的定義及其應用,包括隊列的定義、隊列的類型、隊列的操作以及隊列的應用。同時,我們也會為您提供Python代碼示例。 一、隊列的定義 隊列是一種…

    編程 2025-04-29
  • Python符號定義和使用方法

    本文將從多個方面介紹Python符號的定義和使用方法,涉及注釋、變數、運算符、條件語句和循環等多個方面。 一、注釋 1、單行注釋 # 這是一條單行注釋 2、多行注釋 “”” 這是一…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29

發表回復

登錄後才能評論