#pragma
Xcode 中标记的目的是什么?他们在.m
文件中的位置是否重要?有人应该#pragma
先于其他人吗?
在Visual C++中,可以使用#pragma warning (disable: ...)
.我还发现在GCC中你可以覆盖每个文件的编译器标志.我怎样才能为"下一行"做这个,或者使用GCC围绕代码区域推送/弹出语义?
#pragma comment
以下是什么意思?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Run Code Online (Sandbox Code Playgroud) 对于英特尔架构,是否有一种方法可以指示GCC编译器生成的代码总是强制分支预测在我的代码中采用特定方式?英特尔硬件是否支持此功能?那么其他编译器或硬件呢?
我会在C++代码中使用它,我知道我希望快速运行的情况,并且不关心当另一个分支需要被采取时,即使它最近采用了该分支.
for (;;) {
if (normal) { // How to tell compiler to always branch predict true value?
doSomethingNormal();
} else {
exceptionalCase();
}
}
Run Code Online (Sandbox Code Playgroud)
作为Evdzhan Mustafa的后续问题,该提示是否可以在处理器第一次遇到指令时指定一个提示,所有后续的分支预测都能正常运行?
有没有办法用visual studio禁用cpp文件中的单个警告线?
例如,如果我捕获异常并且不处理它,则会收到错误4101(未引用的局部变量).有没有办法在该函数中忽略它,否则在编译单元中报告它?此刻,我放在#pragma warning (disable : 4101)
文件的顶部,但显然只是将它关闭整个单元.
有没有办法在宏中用其他语句嵌入pragma语句?
我正在努力实现以下目标:
#define DEFINE_DELETE_OBJECT(type) \
void delete_ ## type_(int handle); \
void delete_ ## type(int handle); \
#pragma weak delete_ ## type_ = delete_ ## type
Run Code Online (Sandbox Code Playgroud)
如果有的话,我可以使用提升解决方案(除了wave).
我有一段代码产生了很多警告(不推荐使用的API)
使用clang*我能做到
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
...
#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud)
然而,这在swift中不起作用.
如何在swift中完成?
注意:我不想全局禁用警告,甚至也不想在文件范围内禁用警告,而只是在源代码的特定部分禁用特定警告.
编辑:我看起来我的笔记不够清楚:我不想要条件编译(这是所谓的复制的建议答案).我只想在不使用新API的情况下使警告静音.
与此MSVC预处理器代码最接近的GCC是什么?
#pragma warning( push ) // Save the current warning state.
#pragma warning( disable : 4723 ) // C4723: potential divide by 0
// Code which would generate warning 4723.
#pragma warning( pop ) // Restore warnings to previous state.
Run Code Online (Sandbox Code Playgroud)
我们在常用的标题中包含代码,我们不希望生成特定的警告.但是,我们希望包含这些标头的文件继续生成该警告(如果项目启用了该警告).
所以我知道什么是pragma,以及它用于什么,但这个词本身的含义是什么?我在代码中多次使用它,但我从来不知道这个词实际意味着什么或代表什么.
pragma ×10
c++ ×5
c ×4
gcc ×3
visual-c++ ×2
intel ×1
macros ×1
objective-c ×1
swift ×1
swift2 ×1
terminology ×1
warnings ×1
xcode ×1