题目:
1.使用 define 定义一年有多少毫秒
2.使用define定义max函数
3.define中为何经常会使用 do{}while(0);来包装多条语句代码
答案:
1.#defineMS_OF_YEAR (365*24*60*60*1000L)
考察对整数溢出的考虑2.#define MAX(a,b) (a)>(b)?(a): (b)
考察()的使用
3.举例说明:
#define SAFE_DELETE(p) do{ delete p; p = NULL} while(0)
假设这里去掉do...while(0),
#define SAFE_DELETE(p) delete p; p = NULL;
那么以下代码将出现异常:
if(NULL != p) SAFE_DELETE(p)