求解一个 #define 的问题
偶尔看到了这么一句代码:
#define GlobalFreePtr(lp) \
(GlobalUnlockPtr(lp), (BOOL)GlobalFree(GlobalPtrHandle(lp)))
不是太了解这段代码的含义,只是简单的宏替换吗? 那括号内的" , "号又是做什么的呢 c++ C 宏
[解决办法]
逗号表达式的要领:
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。
if(GlobalFreePtr(m_pRecvCompBuff))
{
//do something...
}
[解决办法]
看用法应该是一个逗号表达式,
但是第一个估计也是有用的。虽然值没有保存下来。
就是两个操作写在一起而已。