“ precompiler指令”“ preprocessor指令”

| 我想知道\“ precompile(r)指令\”和\“ preprocessor指令\”是否相同?我不熟悉前者,只是听说了它,并通过此Google搜索在互联网上找到了有关它的一些信息,例如Dirk Henkemans和Mark Lee的p40“绝对入门的C ++编程”。     
已邀请:
        您的问题就是问人们说“预编译指令”时是否表示“预处理指令”,这不是一个可以回答的问题。 在C或C ++上下文中,我怀疑人们说“ precompile指令”很可能会引用预处理器指令。 您引用的书就是一个例子。谈论的是C预处理程序指令“
#define
\”。我怀疑它是使用“预编译指令”作为描述,而不是名称。 您发布的所有我检查过的搜索结果都是由寻求C预处理程序指令帮助的人员发布的。 就是说,尽管如此,我无法确定所有人在任何时候都是如此。 Microsoft可能根据我进行的另一次搜索的结果制作了一个使用“ precompiler指令”的工具,但这并不是在谈论C,C ++或ѭ1。     
        是的,它们听起来完全一样。我认为预处理器指令更常用(我从未听说过预编译器)。 这是一个很好的指令列表/它们的作用: http://www.cplusplus.com/doc/tutorial/preprocessor/     
        这取决于上下文,但是对于大多数人来说,大多数情况下,如果您使用纯C代码工作,它们是同一回事,尽管\'preprocessor指令\'比\'precompile指令\'或\'precompiler指令\'。 ISO / IEC 9899:1999标准的第6.10节“预处理指令”指示\'preprocessor \'或\'preprocessing \'比\'precompile(r)\'更标准。 但是,如果您使用ESQL / C(C中的嵌入式SQL),则存在区别: precompiler指令针对ESQL / C预编译器,该预编译器将ESQL / C转换为纯C。 预处理程序指令针对C预处理程序,C预处理程序是C编译器的一部分,C编译器将C源代码(全部)转换为目标代码或可执行文件等。 我使用的ESQL / C编译器具有以下指令:
$include sqlca;
$define APERITIF 32;
$include \"header.h\";
$ifdef APPETIZERS;
$define AVOCADO 1;
$endif;

#include <stdio.h>

int main(void)
{
    $ int var1;
    $ whenever error stop;
    $ database \"whatever\";
    $ select max(tabid) into :var1 from systables;
    printf(\"%d\\n\", var1);
    return 0;
}
以\'$ \'开头的行是ESQL / C预编译器指令-面向预编译器。它们为ESQL / C预编译器提供了帮助其将嵌入式SQL语句转换为C代码所需的信息,然后由完整的C编译器对其进行编译。但是ESQL / C预编译器也被称为ESQL / C预处理器(以将其与C预处理器区分开),因此这种区分并不像所有那样困难和快速。在这种情况下,ESQL / C编译器作为一个整体是一个外壳脚本,该脚本先运行ESQL / C预编译器,然后运行C编译器。 (其中有一些额外的复杂性与这个问题无关。)     

要回复问题请先登录注册