使用場合:拼接兩個巨集,乙個是傳入的巨集。但是傳入的巨集不會被替換,反而原封不動的接了上去,這就尷尬了。經過各種嘗試,居然成了,特此記錄分享一下,方便大家學習。
char a_param = 0;
char b_param = 0;
//新增巨集定義
#define define_(x) x##_param //一次定義
#define define(x) define_(x) //再次定義
#define object a
#define param define(object)
void fun()
那最終是不是達到你的目的呢,實質的原理大概就是替換與拼接的先後順序,我沒有細細研究了。
下面是我的乙個使用場合。
#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)
最終目的就是想實現 tim4->psc=x ,我的目的達到了 c語言巨集定義 define
數值巨集常量 define 巨集定義可以定義在 的任何地方,從本行巨集定義開始到後面 都認識這個巨集 可以把任何東西定義成巨集。因為編譯器在預編譯的時候用真身替換替身,然而在 裡面卻又常用替身來幫忙。巨集定義是個演技高超的替身演員,但也會經常耍大牌的,我們慎用它。define pi 3.141592...
C 巨集定義 define
可以用 define命令將乙個指定的識別符號 即巨集名 來代表乙個字串。定義巨集的作用一般是用乙個短的名字代表乙個長的字串。它的一般形式為 define 識別符號 字串 這就是已經介紹過的定義符號常量。如 define pi 3.1415926 還可以用 define命令定義帶引數的巨集定義。其定義...
C語言 巨集定義 define的用法
這種用法是最簡單最常見的一種方式,如下 define pai 3.14注意 它的功能是在程式中若出現了pai,就把它替換為3.14,示例程式如下 include define pai 3.14 不帶參巨集定義 intmain 使用方法如下 define add a,b a b 它的功能是計算a b的...