C語言#define拼接宏定義實現


今天為大家分享一篇C語言#define拼接宏定義實現方式,具有很好的參考價值,希望對大家有所幫助。

使用場合:拼接兩個宏,一個是傳入的宏。

遇到問題:普通的拼接宏定義,對於“傳入的宏”不會被替換,反而原封不動的接了上去。

解決方法:經過試驗以及網上查閱,以下方法即可以解決上述問題。

int A_param=0;

//添加宏定義
#define NUM         A 
#define DEFINE_(X)  X##_param    //首次定義
#define DEFINE(X)   DEFINE_(X)   //再次定義

void fun()
{
    // DEFINE_(NUM)=100; //這個操作會報錯,它就是直接拼接不被替換。即被替換為NUM_param=100;
    DEFINE(NUM)=100; //這個操作就🐮🍺了,先替換再拼接。即被替換為A_param=100;
    printf("A_param = %d\n", A_param); //打印出"A_param = 100";

    // ...
}

那最終是不是達到你的目的呢?

本文參考來自:https://blog.csdn.net/ai5945fei/article/details/79119109


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM