#line指令:预编译和宏定义。
此命令主要是为强制编译器按指定的行号,开始对源程序的代码重新编号,在调试的时候,可以按此规定输出错误代码的准确位置。其作用在于编译的时候,准确输出出错代码所在的位置(行号),而在源程序中并不出现行号,从而方便程序员准确定位。
形式1
语法格式如下:
# line constant “filename”
其作用是使得其后的源代码从指定的行号constant重新开始编号,并将当前文件的名命名为filename。例如下面的程序如下:
1 #include <iostream> 2 3 using std::cout; 4 5 int main() 6 { 7 #line 1 "kevin" 8 int a=1; 9 aa=1; 10 cout<<a; 11 return 0; 12 }
提示如下的编译信息:
kevin(2): error C2065: “aa”: 未声明的标识符
表示当前文件的名称被认为是kevin,#line 1 "kevin" 指令后2行的这样一个相对位置出错。