当我将“C”文件从 unix(AIX/HPUX/Solaris)移动到 Linux 环境时,任何人都可以帮助我解释 PRAGMAS 的影响。我们是否需要进行任何更改才能使其正常工作,否则它们将在没有任何更改的情况下正常工作。?
如果可能的话,请告诉我从一个环境(unix)移植到另一个环境(linux)时我们可能需要考虑的影响。
非常感谢提前..
这主要取决于您的编译器。#pragmas 会被不理解它们的编译器忽略。如果您当前使用的编译器将其中一些用于程序的逻辑,那么该程序是不可移植的,您需要对其进行更改。
Pragma
是 C 标准的一部分。
`#pragma' 指令是 C 标准指定的方法,用于向编译器提供超出语言本身传达的信息的附加信息。该指令的三种形式(通常称为 pragma)由 1999 C 标准指定。AC 编译器可以自由地将它喜欢的任何含义附加到其他 pragma 中。
我们是否需要进行任何更改才能使其正常工作,否则它们将在没有任何更改的情况下正常工作。?
您正在使用不同的编译器。所以会有一些变化需要。例如 GCC 提供了它自己的编译指示,
#pragma GCC dependency
#pragma GCC poison
#pragma GCC system_header
#pragma GCC warning
#pragma GCC error
在移植到使用不同编译器的其他平台时,应该考虑这些事情。我建议你研究编译器文档。
参考这些讨论