关于__LINE__最早是在李先静老师的《程序员成长计划》中看到的,当时只是用来调试时使用,
由于直接打印出错行,再结合__func__就可以找到是哪个函数,哪一行。
后来在分析Contiki时发现里边的protothread切换机制竟然是switch语句+__LINE__,
没想到__LINE__还能这样用。
虽然写程序时,经常使用,但是对于其本源没有彻底了解,所以这次写个简单的小程序看看。
又查询了一下发现__LINE__属于宏定义,这个是ANSI标准规定的
The following macro names shall be defined by the implementation
__DATE__
__FILE__
__LINE__
__STDC__
__STDC_HOSTED__
__STDC_VERSION__
__TIME__
而这里__func__这个宏定义,是gcc对C语言的扩展。
文章评论(0条评论)
登录后参与讨论