10.1 怎么写一个一般用途的宏交换两个值?

对于这个问题没有什么好的答案。

如果这两个值是整数, 可以使用异或的技术, 但是这对浮点值或指针却不行, 对同一个值也无能为力。

(参见问题3.4和20.14)

如果希望这个宏用于任何类型(通常的目标), 那么它不能使用临时变量, 因为不知道需要什么类型的临时变量(即使知道也难以找出一个名字), 而且标准 C 也没有提供typeof 操作符。

最好的全面解决方案可能就是忘掉宏这回事, 除非你还准备把类型作为第三 个参数传入。

永不止步步 发表于01-16 14:46 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308467个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号