今天在做关于Linux的一个小项目,其中要用到debug宏,我在百度上找到相关C语言定义,然后移植到该项目工程中的一个H文件中,该项目有很多C文件,都需要用到此宏,因为我的宏定义在一个头文件中,故我只需在需要用到的C文件中包含此头文件即可,没错,其他文件都没错,唯独其中一个,当我用debug宏代替printf调试输出时,总是报错:error: 'stderr' undeclared (first use in this function) Each undeclared identifier is reported only once for each function it appears in.嗯,乍眼一看很简单就是此宏相关的stderr没定义嘛,于是我看了,奇怪了,明明包含了定义此宏的头文件啊,而且其他调用的地方其他文件都没报错,唯独这个地方编译不过去,然后百度,但是也是没有找到对应的解决方法,于是我就干脆仔仔细细从头开始检查,结果终于发现报错的文件和其他文件的不同之处在哪了,原来是我没有包含<stdio.h>头文件,所以导致输出信息中的'stderr'总是报错说没定义,这个错误很小,但是我个人觉得很难发现,还是很致命的,也由此说明细节还是非常重要的,一定不要小看。好了,废话有点多,希望能帮到那些遇到和我一样的问题的朋友,祝大家学习愉快。
关于Linux系统中用debug宏代替printf的一些小细节
最新推荐文章于 2023-04-20 10:27:42 发布