我必須動態地創建對象。所以,我有以下幾點:如何令牌粘貼一個數字?
#define timerID(num) timerID_##num
這導致爲timerID_num
,而不是說timerID_1
。 有人可以讓我知道如何做到這一點?
我必須動態地創建對象。所以,我有以下幾點:如何令牌粘貼一個數字?
#define timerID(num) timerID_##num
這導致爲timerID_num
,而不是說timerID_1
。 有人可以讓我知道如何做到這一點?
檢查下面的代碼片段:
#define f(g,g2) g##g2
void main()
{
int timerID_1 = 12;
printf("%d",f(timerID_,1));
}
這將串聯到timerID_1
。我打印這個值只是爲了調試。
這顯然會起作用。我需要像這樣傳遞'f(timerID_,num);' –
@XavierGeoffrey:這是不可能的,因爲C是一種靜態語言,您不能在運行時決定符號名稱。請參閱此鏈接哪個答案您的問題:http://stackoverflow.com/questions/5018059/passing-the-value-of-a-variable-to-macro-in-c –
謝謝。我將使用數組來達到我的目的。 –
刪除分號和## – Zelldon
對不起';'但刪除##我不明白你的意思? –
http://stackoverflow.com/q/10379691/812912 –