我對C有點新,所以我仍然在學習繩索。我無法讓預處理器宏以我想要的方式工作。這裏的情況,我有這樣的結構:根據宏中的條件選擇struct-member
struct super {
int data1;
int data2;
int condition;
};
,我想創建這樣一個宏:
#define getdata(s) (s.condition ? s.data1 : s.data2)
,這樣我可以做這樣的事情:
getdata(s) = 4 // stores in data1 if condition, data2, if not.
但這不是很有效。
爲什麼它不起作用,我該如何糾正它?
有線,但有趣的+1。但爲什麼* getdata *?有沒有你想要*做的事? – Wolf 2015-01-06 16:20:44