今天项目中需要定义一个宏,展示多行代码。#define 定义一行很简单,定义多行还是有点麻烦的,下面根据代码讲解我遇到的一些坑。
自定义结构体 InternalTime
typedef struct InternalTime
{
struct timeval timeStart;
struct timeval timeEnd;
}InternalTime;
1,定义一行
#define GetStartTime(internalTime) gettimeofday(&((internalTime)->timeStart), NULL);
说明:internalTime 是InterTime类型的指针,此行的作用是获取程序执行的开始时间
2,定义多行
#define GetEndTime(internalTime,info)\
{\
gettimeofday(&((internalTime)->timeEnd), NULL);\
dzlog_error("%s spend time:%d us",info,(internalTime)->timeEnd.tv_sec*1000000 + (internalTime)->timeEnd.tv_usec - (internalTime)->timeStart.tv_sec*1000000 - (internalTime)->timeStart.tv_usec);\
}
说明:internalTime 是InterTime类型的指针,info是char*的指针,代表打印信息,此宏的作用是获取程序执行的结束时间,计算程序执行的时间,打印时间。
注意点:每一行 以'\' 结束,‘\’后直接换行不能有任何字符