11.2 怎麼寫一個一般用途的宏交換兩個值?

對於這個問題沒有什麼好的答案。如果這兩個值是整數, 可以使用異或的技術, 但是這對浮點值或指針卻不行, 對同一個值也無能為力。 (參見問題 3.4 和 20.14。) 如果希望這個宏用於任何類型 (通常的目標), 那麼它不能使用臨時變量, 因為不知道需要什麼類型的臨時變量 (即使知道也難以找出一個名字), 而且標準 C 也沒有提供 typeof 操作符。

最好的全面解決方案可能就是忘掉宏這回事, 除非你還準備把類型作為 第三個參數傳入。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)