爲了減少行數來寫,我使用宏以下列方式:如何在包含C/C++宏的行尾添加語句?
#define FUNC(a, b) func(a, b, threadId, sizeof(a)); \
do something 1; \
do something 2;
這工作很好,因爲我只需要使用宏(2個參數)編碼函數調用(具有4個參數)和2個或更多其他語句。
此函數調用是另一個函數的參數時出現問題。 例如,假設我需要下面的代碼:
func1(par1, func(a, b, c, d));
do something 1;
do something 2;
有沒有辦法實現這個使用宏,或任何其他的選擇嗎? 即我期待這樣的:
func1(par1, FUNC(a, b)); //This statement(using macros) should transform into the above code after the preprocessing step.
即使是這樣,這將是一個可怕的想法國際海事組織,因爲它會使宏有奇怪的效果,不能立即看到程序員閱讀代碼。 – UnholySheep
這不適合宏觀。我會用常規函數替換宏。 –
你爲什麼試圖做這樣的事情有特別的理由嗎?這聽起來像一個典型的[XY問題](http://xyproblem.info/)給我。 –