LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1045|回复: 4

有关_LINE_和_FILE_

[复制链接]
发表于 2006-3-9 23:49:13 | 显示全部楼层 |阅读模式
能否举一个例子关于用这两个宏定义来定位错误的程序
void err(char * a)
{
   fprintf(stderr,"%s:%d",_FILE_,_LINE_);
   perror(a);
}
把这个函数保存为err.c文件,然后用gcc -c err.c -o err.o ar rcs -o liberr.a err.o生成.a 文件,但运行时用-lerr选项连接,却提示的错误文件的位置在err.c中,请问我应当如何修改?
发表于 2006-3-10 09:20:06 | 显示全部楼层
用宏定义err函数.
#define ERR(S)  printf("[%s-%s]: %s", __FILE__, __LINE__, (S))
回复 支持 反对

使用道具 举报

发表于 2006-3-10 10:05:20 | 显示全部楼层
用宏方便 支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-10 21:26:25 | 显示全部楼层
为什么用宏方便呢?能给个理由吗?
回复 支持 反对

使用道具 举报

发表于 2006-3-10 22:51:42 | 显示全部楼层
用宏在本文件扩展。也就是用到ERR 宏的那个地方展开
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表