博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
__FUNCTION__, __LINE__ 有助于debug的宏定义
阅读量:7115 次
发布时间:2019-06-28

本文共 1138 字,大约阅读时间需要 3 分钟。

__FUNCTION__, __LINE__ 

今天无意之间看到一段代码,里面有这样一个片段:

if (!interface) {		err ("%s - error, can't find device for minor %d",		     __FUNCTION__, subminor);		retval = -ENODEV;		goto exit;	}
这个__FUNCTION__干嘛的?少见(本人水平不够~),有意思~

后面找了一下,这个是和编译器GCC相关连的宏定义,而这些宏定义的时候有助于高速定位程序报错或警告的位置,在文件里的行数(__LINE__)

给出demo

/*************************************************code writer	: EOFcode date	: 2014.08.17code file	: macro_demo.ce-mail		: jasonleaster@gmail.comcode purpose:	This code is a demo for how to use some special macros -- __FILE__ __FUNCTION__ __LINE____DATE__ . It's funny and useful to use this Macroto help you to debug.	If there is something wrong with my code, please touch me by e-mail.**************************************************/#include 
void hello(void){ printf("__FILE__ :%s __FUNCTION__:%s __LINE__:%d __DATE__:%s\n",__FILE__,__FUNCTION__,__LINE__,__DATE__);}int main(){ printf("__FILE__ :%s __FUNCTION__:%s __LINE__:%d __DATE__:%s\n",__FILE__,__FUNCTION__,__LINE__,__DATE__); hello(); return 0;}

注意,这里的宏定义是不会依据执行时环境变化的,无论我在哪个文件夹下执行这个demo,这里的__FILE__打印出来的字符都永远提示./hello.c 以为还是当前文件夹,事实上执行环境已经发生变化.

当然这些宏定义是十分有助于debug的.

你可能感兴趣的文章
又失恋了。程序员,你的爱情在哪里?
查看>>
KNN 与 K - Means 算法比较
查看>>
比赛F-F Perpetuum Mobile
查看>>
JS 获取url参数
查看>>
印制电路板设计点滴
查看>>
Linux下搭建MySQL的主从复制(一)
查看>>
王高利:Linux__ssh连接缓慢,解决方法如下
查看>>
linux 之fuser使用介绍
查看>>
history命令记录历史执行时间
查看>>
物联网
查看>>
linux vi 编辑器的使用
查看>>
我的友情链接
查看>>
心态总结
查看>>
zabbix自定义监控3(2.4网页报警,邮件报警)
查看>>
我的友情链接
查看>>
Prime
查看>>
XML的DOM解析
查看>>
Android特效(1)----字幕滚动效果
查看>>
java获取当前类的绝对路径
查看>>
邮件服务器互发
查看>>