Chinaunix首页 | 论坛 | 博客
  • 博客访问: 192286
  • 博文数量: 34
  • 博客积分: 746
  • 博客等级: 军士长
  • 技术积分: 202
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-09 21:19
文章分类

全部博文(34)

文章存档

2011年(34)

分类: 嵌入式

2011-03-02 22:53:25

ProtothreadS的代码中遇到了一个特殊的符号__LINE__,搞了半天才明白是什么意思。在armccref.chm文件中的Predefined macros部分是这样描述的。

 

__LINE__

num

Always set. It is the source line number of the line of code containing this macro.

其实就是代表代码的行号。

下面一段文章转自:

#line指令改变_ _ _LINE_ _ __ _ _FILE_ _ _的内容。_ _ _LINE_ _ __ _ _FILE_ _ _都是编译程序中预定义的标识符。标识符_ _ _LINE_ _ _的内容是当前被编译代码行的行号,_ _ _FILE_ _ _的内容是当前被编译源文件的文件名。#line的一般形式是:
    #line   number"filename"
其中,number是正整数并变成_ _ _LINE_ _ _的新值;可选的"filename"是合法文件标识符并变成_ _ _FILE_ _ _的新值。#line主要用于调试和特殊应用。
   
例如,以下代码说明行计数从100开始。printf()语句显示行号102,因为该句是#line 100后面的第3行。
    #include
  
    #line 100                              //
设置行计数
    int main()                             // line 100
    {                                      // line 101
       printf("%d\n",_ _ _LINE_ _ _);      // line102

       return 0;
     }

现在我们对__LINE__的理解应该很清晰了吧。
阅读(1670) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

GFree_Wind2011-03-03 23:17:19

__FILE__和__LINE__这两个常用,但是一直不知道#line什么时候适合用?