宏是一些脚本中的一些代码,具有一些特定的名称。当任何一个宏被执行时,它们背后的代码就会被执行,以完成某项任务。就像这样,__FILE__是C++语言中的一个宏,用于获取一个特定文件的路径。因此,今天在本指南中,我们将讨论C++ __FILE__宏的工作。
例子 1:
让我们通过启动终端控制台程序来看看C++中__FILE__宏的第一个例子。你可能会使用快捷键 "Ctrl+Alt+T "来这样做。如果你忘记了快捷键,另一种打开外壳的方法是使用菜单活动区。终端控制台在你的屏幕上启动后,试着创建一个新的c++文件,在其中做代码。一个文件可以通过简单的 "触摸 "查询来创建,如下面附图所示。新创建的文件的名称必须用 "touch "关键字给出。

你的Ubuntu 20.04 Linux系统上必须安装一些编辑器,以便利用它来编码和打开新创建的文件。在Linux用户中最值得推荐的编辑器是GNU Nano和Vim编辑器。除此之外,如果前面提到的两个编辑器都不能工作,也可以使用文本编辑器。所以,我们已经安装了GNU Nano编辑器。因此,我们将用它来打开和编辑文件以制作代码。在文件名旁边使用 "nano "关键字,以使编辑器工作。

现在,新创建的C++文件macro.cc已经准备好在编辑器中进行编码。让我们开始实施C++代码,因为我们正在实施这篇文章,看看__FILE__宏的工作。我们已经开始了我们的C++代码,在它的顶部添加了标准的输入-输出头。关键字 "include "已经和哈希号一起被用来做这件事了。没有这个头,C++代码的输入和输出在编译和执行时将不会在控制台工作。
main()方法是我们代码的基本支柱,因为执行从它开始,在它结束。在main()方法中,实际工作将被完成。我们在main()方法中使用单行代码来描述__FILE__宏的功能。所以,这里使用了printf语句,将两个值作为参数,即字符串取文件名和宏函数。
这里使用了__FILE__宏来获取当前的文件路径或其名称。而"%S "用于在字符串中打印出文件的当前路径或其名称。你必须在执行前用 "Ctrl+S "的快捷方式保存你的代码。现在代码被保存了,试着用 "Ctrl+X "快捷键回到shell终端。

由于我们已经完成了__FILE__宏的C++代码,让我们开始对C++代码进行编译。为了进行编译,我们已经安装了g++编译器来编译C++代码。所以,在终端中已经利用了g++编译器来编译 "macro.cc "文件。编译后,它没有返回任何信息,这表明macro.cc文件中的C++代码在语义上是正确的。编译结束后,轮到执行代码了。为了运行代码文件,我们倾向于使用"./.aout "的简单查询。在运行macro.cc文件时,我们得到了一个文件的名称作为回报。这就是C++的__FILE__宏的工作原理。

例子 2:
让我们通过另一个例子来深入了解Ubuntu 20.04系统中的C++ __FILE__宏的功能。我们已经看到了C++ __FILE__宏是如何工作的,当它被用来获取一个文件的路径时,它已经被提到了。
现在,我们将使用C++ __FILE__宏来获取我们目前正在处理的文件以外的文件路径或名称。因此,我们在GNU Nano编辑器中打开了同一个文件macro.cc来更新代码。我们加入了带有include关键字的标准输入输出头,并初始化了一个带有整数返回类型的main()函数。
在main()方法中,第一条打印语句与以前的相同,以获得我们目前正在工作的当前文件路径。之后,我们使用了#line关键字,在下一个连续的行中使用了另一个文件名,即 "new.txt"。这是为了指定当前文件以外的文件,我们将得到它的名称或路径。在C++ __FILE__宏的帮助下,下一个printf语句已经被用来打印出文件 "new.txt "的路径。保存你新更新的代码以避免在编译时出现任何不便。使用 "Ctrl+S "来这样做。
保存好更新的文件后,通过键盘上的 "Ctrl+X "退出。现在,我们回到了shell界面。

让我们来编译更新后的文件。使用g++编译器来完成,文件名是macro.cc。编译成功后,在控制台用"./a.out "命令运行代码。输出中首先显示了一个当前文件的路径,然后是另一个文件的路径,"new.txt "已经显示在shell屏幕上了。看看使用__FILE__宏来在shell上显示文件路径是多么容易。

例子3:
让我们来看看 C++ 中的 __LINE__ 宏和 __FILE__ 宏。__LINE__ 宏将显示使用了该宏的文件的行号。所以,打开同一个文件,更新两个printf语句。在C++的__LINE__宏之前,我们已经添加了C++的__LINE__宏。这个__LINE__宏是为了获得当前文件的行号,其中__FILE__排在第一位。而下一个__LINE__宏将得到另一个文件的第一行号,因为我们已经在代码中提到了行号和文件名。

在保存和退出文件后,我们已经回到了shell终端。我们正在利用同样的g++命令来编译C++ macro.cc文件的代码。编译的成功导致了执行命令。现在这里使用"./a.out "命令来完成。执行结果告诉我们,第一个文件,即第3行的当前文件,而__FILE__宏在代码中提到的其他文件的第一行。

总结
这篇文章包含了宏的定义,并讨论了C++ __FILE__宏在Ubuntu 20.04系统中的用法。在一些例子中也讨论了C++ __LINE__宏,以更多地说明C++ __FILE__宏的工作。总而言之,我们非常希望这篇文章能对你的C++ __FILE__宏有最好的帮助。