今天為大家分享一篇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