Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ #pragma start和#pragma exit的用例_C++_C_Preprocessor_Pragma - Fatal编程技术网

C++ #pragma start和#pragma exit的用例

C++ #pragma start和#pragma exit的用例,c++,c,preprocessor,pragma,C++,C,Preprocessor,Pragma,#pragma启动和#pragma退出:这些指令帮助我们指定程序运行前需要运行的功能 启动(在控件传递到main()之前)和程序之前 退出(就在控件从main()返回之前) 有人能给我推荐这些预处理器指令的任何用例吗 我担心这些在面向对象编程中的用例可能非常有限。有人发现它被用于项目中吗?这些指令最重要的部分是能够为要在main之前/之后调用的函数分配优先级。这一点很容易克服。 第二个问题的答案是:不,我没有看到这些指令在实际应用中使用。为了避免在评论中给出(甚至部分)答案,我提出以下观点: 我

#pragma启动#pragma退出:这些指令帮助我们指定程序运行前需要运行的功能 启动(在控件传递到main()之前)和程序之前 退出(就在控件从main()返回之前)

有人能给我推荐这些预处理器指令的任何用例吗


我担心这些在面向对象编程中的用例可能非常有限。有人发现它被用于项目中吗?

这些指令最重要的部分是能够为要在main之前/之后调用的函数分配优先级。这一点很容易克服。 第二个问题的答案是:不,我没有看到这些指令在实际应用中使用。

为了避免在评论中给出(甚至部分)答案,我提出以下观点:


我在实时系统中看到过(C和汇编程序)代码,它们在main之前执行(实际上是在crt之前/而不是在crt之前执行),它所做的事情不能等待crt的活动(有时很长)。然而,“有龙存在”

我同意。还可以创建对象的静态实例。构造函数在进入main之前也会被调用,析构函数在从main返回之后也会被调用。我见过(C和汇编程序)代码在main之前(实际上是在crt之前/而不是之前)执行,当它执行一些不能等待crt(有时很长)活动的事情时。然而,“有龙”,这似乎是从Karthik Byggari的博客中摘取的。我不会理会他;事实上,他仍然在谈论20世纪的“turboc”编译器,这说明了它在今天有多大的相关性。哪个编译器支持这些pragmas?我以前从未听说过他们。你能为这段引文提供一个来源,或者提供一些上下文吗?在那篇文章中,它谈到了
#pragma start
#pragma exit
,它有一个按钮,上面写着“在IDE中运行”,但当我点击它时,这些指令显然没有任何作用。编译器忽略了它们。这表明此人要么(A)在胡说八道,要么(B)在谈论一个非常非标准的编译器,他懒得命名。一个
#pragma start
指令真的能解决这个问题吗?它似乎只会把罐子踢到街上更远的地方。此外,在我看来,
#pragma start
是否在初始化全局静态之前实际运行代码是值得怀疑的。但是我找不到任何支持这些的编译器,所以我找不到任何关于它们的文档。