问个简单的宏定义问题,高手请指教

ashhyc 2005-03-19 01:31:47
//#define DEBUG
#if defined (DEBUG)
#define WRITELOG(filename,content) \
{ \
int main_window_file_handle; \
OFSTRUCT main_window_file_data; \
main_window_file_handle=OpenFile (filename,&main_window_file_data,OF_READWRITE); \
_lwrite(main_window_file_handle,content,strlen(content));\
_lclose(main_window_file_handle); \
}
#else
#define WRITELOG
#endif

void main()
{
WRITELOG("test.txt","test")
WRITELOG("test.txt","test")
WRITELOG("test.txt","test")
WRITELOG("test.txt","test")
WRITELOG("test.txt","test")
WRITELOG("test.txt","test")
.....
}
这样的宏语句对代码效率有损失吗?
...全文
54 点赞 收藏 5
写回复
5 条回复
yuchengliu 2005年03月19日
减少函数调用时间,
不会损失效率

但是同时会增加程序出错的危险
因为宏只是简单的替换,没有安全检查

有利有弊!
回复 点赞
smartcomplier 2005年03月19日
会增加编译器的负担
回复 点赞
dongpy 2005年03月19日
用宏代替函数会使目标代码变大,而效率提高,因为省去了函数调用的开销
回复 点赞
成富 2005年03月19日
不会减少函数调用时间
宏是在编译的时候自动展开的,只是让你书写代码方便而已
回复 点赞
pcboyxhy 2005年03月19日
减少函数调用时间,
不会损失效率
回复 点赞
发动态
发帖子
C语言
创建于2007-09-28

3.2w+

社区成员

24.0w+

社区内容

C语言相关问题讨论
社区公告
暂无公告