问题标签 [pragma]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 GCC 4.1.1 中优化文件中单个函数的方法是什么?
各种 C/C++ 编译器都有#pragma
s 来控制优化。
例如:
代码战士
MSVC
纯粹出于性能原因,我有几个功能需要在所有构建中进行优化,包括在其他方面未优化的调试构建。
GCC(特别是 4.1.1)有没有办法做一些类似于这些其他编译器的事情?不幸的是,我的目标平台(专有硬件)不支持 GCC 4.4,所以我不能使用优化属性——即__attribute__((optimize(...)))
.
此外,在此目标平台的工具链上,还有一个自动批量构建工具;因此也不可能只将函数拆分为单独的文件并更改优化参数,因为项目中的文件可以自动组合以提高编译和链接速度。我必须为这些函数创建一个单独的库,并链接它以执行拆分方法。这可能比它的价值要痛苦得多——尤其是如果有一种更简单的方法可以实现这一点。
visual-studio - 忽略#pragma 注释(lib,...)?
我正在尝试执行以前生成的 .obj 文件的链接(使用最新版本的 MSVC)。
创建这些 .obj 时,源代码指定:
因此,链接器正在尝试链接源中指定的静态库。有没有办法指示链接器忽略这些库,所以我可以指定我自己的?
例如,如果一个来源做了以下事情:
在链接时,我希望链接器忽略“foo.lib”,而是链接到“bar.lib”。
c# - #pragma 警告禁用代码列表及其含义
禁用警告的语法如下:
或者,更一般地表达:
是否有这些数字代码的列表以及它们正在抑制的警告的描述?令我懊恼的是,我似乎无法通过谷歌找到它。
c++ - 仅针对部分翻译单元有选择地禁用 GCC 警告
与此MSVC预处理器代码最接近的 GCC 是什么?
我们在通常包含的标头中有代码,我们不想为其生成特定的警告。但是,我们希望包含这些标头的文件继续生成该警告(如果项目启用了该警告)。
visual-c++ - VC++ 编译器:如何确定当前的警告级别或覆盖?
我有一个项目,我刚刚发现警告 C4244(可能丢失数据)正在被抑制。我强烈怀疑某些糟糕的 MS 标头正在抑制此警告,并为所有包含所述标头的翻译单元保留它,但我尚未确定其无数标头中的哪一个可能有问题。
所以,就像任何其他编程问题一样,我想首先进行二进制搜索,打印出当前的警告级别,如果可能的话,在我的主预编译头文件中打印出任何被抑制的警告。
有谁知道我可能使用什么编译器指令,或者我可以采取什么方法来给我这些信息?
我无法告诉你,当调用者违反合同并试图向我发送整数而不是有符号字节时,发现我在标题中精心构造的类型声明未能给出编译器警告是多么令人讨厌(这导致了我正在尝试解决的当前错误)。
想法?
笔记:
通过我的整个解决方案对#pragma 进行搜索,只得到平衡的#pragma warning(disable:xxxx) 声明,然后是#pragma warning(default:xxxx)。这些都没有引用 4244。
在整个解决方案中搜索 4244 不会返回任何匹配项(我从不覆盖该警告,我的任何包含的库、子项目等也不会覆盖)。
在整个 MS 中搜索 4244 包括返回一些引用的路径,这些引用似乎是平衡的,或者几乎是平衡的,这取决于在调用它们之前设置的#define 符号。因此,我怀疑 MS 有过错(结合 MS 在其标题中草率工作的先前历史)。
xcode - Xcode - 使用#pragma 标记
我很确定这不是重复的。你使用#pragma 标记吗?我见过很多方法,哪个是正确的?
你的做法是什么?你建议如何划分?您通常将您的部分命名为什么,例如视图控制器?
c++ - 如何将包含 #pragma optimize("a") 的代码从 VC++7 移植到 VC++9?
我正在将我的 C++ 代码库从 Visual Studio 2k3 移动到 Visual Studio 2k8。代码包含
MSDN 说这意味着“假设没有别名”。更高版本的 VS 拒绝编译它,而且 MSDN 似乎没有说明如何处理包含此 #pragma 的代码。
“假设没有别名”是什么意思,我如何决定如何处理这行代码?
visual-studio - Visual Studio 中的任何方式都不会因抛出特定异常而中断?
是否有一个编译指示或调试器属性允许调试器在抛出特定异常时不会中断,即使在“调试>>异常”菜单下我已经告诉它在抛出任何 CLR 异常时中断?
一般来说,在开发过程中,我喜欢让它在调试时中断异常,以便我可以立即检查它们。有时有一些孤立的情况,已知这段代码偶尔会引发异常,我已经使用 try-catch 处理了它。请参阅这个问题的答案,其中一致认为 try-catch 是最正确的情况。
我希望能够在方法上设置一个属性(类似于 System.Diagnostics.DebuggerHiddenAttribute),它只是忽略方法中抛出的任何异常。
顺便说一句,我目前在 Visual Studio 2008 中遇到这种情况,但我猜要么所有版本都有答案,要么没有。
c# - 生成的 C# 代码是否有任何#pragma 或类似指令以将模板代码行号与 C# 行号匹配?
我有一个看起来类似于旧式 ASP 代码的模板系统。我通过一个将整个东西重写为 C# 源代码、编译并最终执行它的类来运行它。
我想知道是否有某种类似#pragma 的指令我可以将生成的C# 代码洒在上面,这将使编译错误与我的模板文件中的行号相匹配?
例如,假设我的模板代码中有第一行也是唯一一行:
但是为了编译它,我必须添加一个命名空间、一个类、一个方法和一些样板代码,所以上面的这一行,即我的模板文件中的第 1 行,实际上最终是第 17 行(随机数,仅用于说明目的)在 C# 代码中。编译器错误自然会将我的错误标记为第 17 行,而不是第 1 行。
我记得我以前使用过的另一种编程语言(虽然我不记得是哪一种)它有一个可以添加的指令,它可以使错误行号对齐。
C# 3.5 中有这样的东西吗?