C語言#define拼接宏定義實現(xiàn)方式
更新時間:2019年12月20日 09:34:50 作者:ai5945fei
今天小編就為大家分享一篇C語言#define拼接宏定義實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
使用場合:拼接兩個宏,一個是傳入的宏。但是傳入的宏不會被替換,反而原封不動的接了上去,這就尷尬了。經(jīng)過各種嘗試,居然成了,特此記錄分享一下,方便大家學習。
char A_param=0; char B_pramm=0; //添加宏定義 #define OBJECT A #define DEFINE_(X) X##_param //一次定義 #define DEFINE(X) DEFINE_(X) //再次定義 #define PARAM DEFINE(OBJECT) void fun() { // DEFINE_(OBJECT)=100; 這個操作是拒絕的,它就是直接拼接不被替換 DEFINE(OBJECT)=100; //這個操作就神了,先替換再拼接,我們只是做了二次定義,解決一切煩惱 PARAM=100;//這樣也是可以的 }
那最終是不是達到你的目的呢,實質的原理大概就是替換與拼接的先后順序,我沒有細細研究了。
下面是我的一個使用場合。
#define STEP_TIMx 4//TIM4 #define STEP_CHx 2//CH2 #define SET_STEP42_PPS_1(NUM,X) TIM##NUM->PSC=((X)) #define SET_STEP42_PPS_2(NUM,X) SET_STEP42_PPS_1(NUM,X) #define SET_STEP42_PPS(X) SET_STEP42_PPS_2(STEP_TIMx,X) //最終目的就是想實現(xiàn) TIM4->PSC=X ,我的目的達到了
以上這篇C語言#define拼接宏定義實現(xiàn)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解如何將Spire.Doc for C++集成到C++程序中
Spire.Doc for C++是一個專業(yè)的Word庫,供開發(fā)人員在任何類型的C++應用程序中閱讀、創(chuàng)建、編輯、比較和轉換 Word 文檔,本文演示了如何以兩種不同的方式將 Spire.Doc for C++ 集成到您的 C++ 應用程序中,希望對大家有所幫助2023-05-05C語言實現(xiàn)經(jīng)典小游戲井字棋的示例代碼
這個三子棋游戲是在學習C語言的過程中自己編寫的一個小游戲,現(xiàn)在將自己的思路(主要以流程圖形式和代碼中的注釋表達)和具體代碼以及運行結果分享出來以供大家學習參考,希望對大家有所幫助2022-11-11