Pragma 及其在我的代码中的合适用途?

发布于 2024-10-31 13:25:25 字数 146 浏览 0 评论 0原文

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

我无法向您提供编译器的确切版本,因为我在办公室,不记得了

Can somebody give me some examples of some pragma in C. Any compiler that he or she is using). If possible gcc,because I am using a gcc compiler.
And how its useful in a C code ??

I can't give you the exact version of my compiler cause I am in office and dont remember it

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浪推晚风 2024-11-07 13:25:26

为什么不直接检查文档呢?

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

例如:

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

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

4.4 之前的 GCC 版本中未实现“#pragma GCC Optimize”编译指示。

Why not just check the documentation?

This is the list of GCC's supported pragmas, sorted into various categories.

For example:

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

This pragma allows you to set global optimization options for functions defined later in the source file. One or more strings can be specified. Each function that is defined after this point will be as if attribute((optimize("STRING"))) was specified for that function. The parenthesis around the options is optional. See Function Attributes, for more information about the optimize attribute and the attribute syntax.

The `#pragma GCC optimize' pragma is not implemented in GCC versions earlier than 4.4.

○愚か者の日 2024-11-07 13:25:25

我相信 C99 只识别 3 个编译指示 (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),并且,因此,最好不要使用

无法识别的STDC pragma 会调用未定义的行为。

I believe C99 only recognizes 3 pragmas (6.10.6) (all of them related to floating point)

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

Any pragma without STDC has implementation defined behaviour (6.10.6) and, therefore, should best NOT BE USED

An unrecognized STDC pragma invokes Undefined Behaviour.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文