欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言:代碼宏詳解

 更新時間:2021年09月28日 11:27:38   作者:兔頭哥哥  
這篇文章主要介紹了 C語言宏定義使用實例詳解的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助

1、定義宏

#define ARRAY_SIZE 100
double data[ARRAY_SIZE];

如下圖,上方代碼在編譯器進(jìn)行宏替換時會將代碼中的ARRAY_SIZE替換成100

在這里插入圖片描述

2、宏函數(shù)

宏函數(shù)的參數(shù)是沒有任何類型的概念的,因此

宏函數(shù)使用如下,代碼中的MAX(3,4)會替換成宏定義的表達(dá)式

#define MAX(a,b) a > b ? a : b
int n1 = MAX(3,4);

在這里插入圖片描述

注意

在這里插入圖片描述

上方替換出錯,是因為給宏函數(shù)的參數(shù)傳遞的是一個表達(dá)式,可以使用下圖方法

在這里插入圖片描述

宏函數(shù)的參數(shù)不要傳表達(dá)式,如下圖,表達(dá)式進(jìn)行了2次運算

在這里插入圖片描述

3、多行宏

使用斜杠連接下一行代碼,適用于代碼很長的宏

#define IS_HEX_CHARACTOR(ch)   \
( (ch) >= '0' && (ch) <= '9') || \
( (ch) >= 'A' && (ch) <= 'F') || \
( (ch) >= 'a' && (ch) <= 'f')
int main(){
    printf("is hex charactor:%d", IS_HEX_CHARACTOR('a'));
}

在這里插入圖片描述

4、宏變長參數(shù)

#define PRINTLNF(format, ...) printf(format, __VA_ARGS__)

在這里插入圖片描述

在這里插入圖片描述

5、原樣輸出變量名

在這里插入圖片描述

6、例子

#include <stdio.h>
#define PRINTF(format, ...) printf("("__FILE__":%d) %s: "format,__LINE__,__FUNCTION__, ##__VA_ARGS__)
#define PRINT_INT(value) PRINTF(#value":%d \n", value)
int main(){
    int no = 1;
    PRINT_INT(no);
    return 0;
}

在這里插入圖片描述

7、宏與函數(shù)的差異

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 輸入3個字符串,將它們按照字母由大到小排序(示例代碼)

    輸入3個字符串,將它們按照字母由大到小排序(示例代碼)

    我們可以用string方法定義字符串變量。以下是具體實現(xiàn)代碼。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • MATLAB Delaunay算法提取離散點邊界的方法

    MATLAB Delaunay算法提取離散點邊界的方法

    這篇文章主要為大家詳細(xì)介紹了MATLAB Delaunay算法提取離散點邊界的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • C語言-I/O流設(shè)計實驗

    C語言-I/O流設(shè)計實驗

    編程語言的I/O類庫中常常使用流這個抽象的概念,它代表任何有能力產(chǎn)生數(shù)據(jù)的數(shù)據(jù)源對象或時有能力接收數(shù)據(jù)的接收端對象,本文為大家介紹C語言中I/O系統(tǒng)基礎(chǔ)知識
    2021-07-07
  • C++實現(xiàn)遺傳算法

    C++實現(xiàn)遺傳算法

    這篇文章主要介紹了C++實現(xiàn)遺傳算法,以實例形式較為詳細(xì)的分析了遺傳算法的C++實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • 一文詳解C語言操作符

    一文詳解C語言操作符

    這篇文章主要詳細(xì)介紹了C語言的操作符,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • C++中全局變量的初始化全過程

    C++中全局變量的初始化全過程

    這篇文章主要介紹了C++全局變量的初始化全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型)

    C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型)

    這篇文章主要介紹了C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語言實現(xiàn)注冊登錄系統(tǒng)

    C語言實現(xiàn)注冊登錄系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)注冊登錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 深入C++拷貝構(gòu)造函數(shù)的總結(jié)詳解

    深入C++拷貝構(gòu)造函數(shù)的總結(jié)詳解

    本篇文章是對C++中拷貝構(gòu)造函數(shù)進(jìn)行了總結(jié)與介紹。需要的朋友參考下
    2013-05-05
  • C語言中#define與typedef的互換細(xì)節(jié)詳解

    C語言中#define與typedef的互換細(xì)節(jié)詳解

    本篇文章是對C語言中#define與typedef的互換細(xì)節(jié)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論