读书人

求解一个 #define 的有关问题

发布时间: 2013-08-01 15:23:18 作者: rapoo

求解一个 #define 的问题

偶尔看到了这么一句代码:

#define     GlobalFreePtr(lp)                \
(GlobalUnlockPtr(lp), (BOOL)GlobalFree(GlobalPtrHandle(lp)))



不是太了解这段代码的含义,只是简单的宏替换吗? 那括号内的" , "号又是做什么的呢 c++ C 宏
[解决办法]
逗号表达式的要领:
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。


if(GlobalFreePtr(m_pRecvCompBuff))
{
//do something...
}

[解决办法]
看用法应该是一个逗号表达式,
但是第一个估计也是有用的。虽然值没有保存下来。
就是两个操作写在一起而已。

读书人网 >C++

热点推荐