這篇文章將為大家詳細(xì)講解有關(guān)C語言#define拼接宏定義實(shí)現(xiàn)方式是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供云縣企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站制作、HTML5、小程序制作等業(yè)務(wù)。10年已為云縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。使用場(chǎng)合:拼接兩個(gè)宏,一個(gè)是傳入的宏。但是傳入的宏不會(huì)被替換,反而原封不動(dòng)的接了上去,這就尷尬了。經(jīng)過各種嘗試,居然成了,特此記錄分享一下,方便大家學(xué)習(xí)。
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; 這個(gè)操作是拒絕的,它就是直接拼接不被替換 DEFINE(OBJECT)=100; //這個(gè)操作就神了,先替換再拼接,我們只是做了二次定義,解決一切煩惱 PARAM=100;//這樣也是可以的}
那最終是不是達(dá)到你的目的呢,實(shí)質(zhì)的原理大概就是替換與拼接的先后順序,我沒有細(xì)細(xì)研究了。
下面是我的一個(gè)使用場(chǎng)合。
#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)//最終目的就是想實(shí)現(xiàn) TIM4->PSC=X ,我的目的達(dá)到了
關(guān)于C語言#define拼接宏定義實(shí)現(xiàn)方式是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。