📜  线路控制指令

📅  最后修改于: 2021-06-01 00:25:23             🧑  作者: Mango

线路控制指令无论何时编译程序,程序中都有可能发生某些错误。每当编译器在程序中发现错误时,它都会向我们提供在其中找到错误的文件名以及行列表以及错误所在的确切行号。这使我们很容易找到并纠正错误。但是,可以使用#line指令控制编译器在编译过程中应提供的信息。它操纵编译器读取一行,以便程序员可以控制该行以及文件编译器读取的行。它基本上用于重置行号。

特点

  • 实际上对AC / C++源代码进行了预处理,以创建一个转换单元,然后将其编译。
  • 转换单元具有头文件及其本身的所有内容。因此,对于编译器而言,很难区分文件和正在读取的行,然后它将相应地生成错误消息。
  • 对于预处理器,它每次都会添加行控制,并将头文件插入源代码。

语法

解释:

  • 上面两种语法都相同,只是略有不同。
  • 语法1将由编译器读取,而语法2将由预处理器读取。
  • 最终,语法2将以翻译单位转换为语法1。
  • 这些语法最终告诉编译器,下一行将具有“ line-number”作为行号,并且属于文件“ file-name”
  • 要验证这一点,请使用两个内置宏:
    • __LINE__:它在源代码中打印行号。
    • __FILE__:打印源代码的文件名。

下面是演示线路控制的程序:

C++
// C++ program to demonstrate line control
#include 
using namespace std;
  
// Driver Code
int main()
{
    cout << "START" << endl;
  
    cout << __LINE__ << " "
         << __FILE__ << endl;
  
#line 67 "Binod.cpp"
  
    cout << __LINE__
         << " " << __FILE__
         << endl; // (67)
  
    // This will apply continously (68)
    cout << __LINE__ << endl; // (69)
}


输出:
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”