1

有人可以给我一些C 中一些 pragma 的例子吗?他或她正在使用的任何编译器)。如果可能的话 gcc,因为我使用的是 gcc 编译器。它在 C 代码中有何用处?

我不能给你我的编译器的确切版本,因为我在办公室,不记得了

4

2 回答 2

1

我相信 C99 只识别 3 个 pragma (6.10.6) (所有这些都与浮点有关

#pragma STDC CX_LIMITED_RANGE ... /*  (7.3.4) */
#pragma STDC FENV_ACCESS ...      /*  (7.6.1) */
#pragma STDC FP_CONTRACT ...      /* (7.12.2) */

任何没有STDC实现定义的行为 (6.10.6) 的编译指示,因此最好不要使用

无法识别的STDCpragma 调用 Undefined Behaviour。

于 2011-04-08T09:08:15.487 回答
0

为什么不只检查文档?

这是GCC 支持的编译指示列表,分为不同的类别。

例如:

#pragma GCC optimize ("string"...)

此 pragma 允许您为稍后在源文件中定义的函数设置全局优化选项。可以指定一个或多个字符串。在此之后定义的每个函数都将如同为该函数指定了 attribute((optimize("STRING")))。选项周围的括号是可选的。有关优化属性和属性语法的更多信息,请参阅函数属性。

`#pragma GCC optimize' pragma 未在 4.4 之前的 GCC 版本中实现。

于 2011-04-08T09:04:19.527 回答