问题标签 [c-preprocessor]

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.

0 投票
6 回答
274264 浏览

c++ - __FILE__、__LINE__ 和 __FUNCTION__ 在 C++ 中的用法

假设您的 C++ 编译器支持它们,是否有任何特别的理由使用__FILE____LINE__以及__FUNCTION__用于日志记录和调试目的?

我主要关心的是向用户提供误导性数据——例如,报告错误的行号或函数作为优化的结果——或者因此导致性能下降。

__FILE__基本上,我可以信任__LINE__始终__FUNCTION__做正确的事吗?

0 投票
3 回答
1696 浏览

c# - 是否有与 /unsafe 标志对应的“预处理器”符号?

我正在处理WriteableBitmapC# 中的一个。我目前正在使用不安全的代码块通过WriteableBitmap.BackBuffer. 但是,我宁愿不依赖于该/unsafe选项,因此我正在考虑改用该选项WriteableBitmap.WritePixels

是否有某种方法可以在“不安全”版本中进行有条件地编译,以便在使用 /unsafe 编译选项时可以使用它,而无需手动集成到我的项目文件中?

简而言之,我正在寻找以下内容:

运行时检测也很好;但这意味着我总是需要用 编译 /unsafe这意味着库代码需要更新项目文件,这不太方便。

基本上,我想在重要的时候保留快速版本,但有一个合理的版本,无论如何都可以工作。

0 投票
4 回答
3762 浏览

c# - 如何在一个项目中创建不同的 DLL?

有个问题不知道能不能解决。我在 Visual Studio 2005 上有一个 C# 项目,我想根据预处理器常量创建不同的 DLL 名称。我现在拥有的是预处理器常量、两个 snk 文件和两个程序集的 guid。我还创建了两个配置(调试和调试预处理器),它们使用适当的 snk 和 guid 完美编译。

现在,我必须将这两个程序集放入 GAC。添加第一个程序集没有问题,但第二个程序集没有。

如何从一个 Visual Studio 项目创建两个或多个不同的程序集?

我可能忘记在“AssemblyInfo.cs”中添加一个新行来根据预处理器常量更改 DLL 名称?

0 投票
7 回答
17957 浏览

c++ - 替换 C++ 运算符 new 的宏

是否可以创建宏来替换所有形式的operator new重载,包括额外的 args...say__FILE____LINE__

问题似乎是operator new可以使用或不使用括号进行编码,因此:

  • 类对象宏:

    将替换如下声明:

    /li>
  • 类似函数的宏:

    将替换如下声明:

    /li>

不幸的是,尝试用相同的标识符声明两个宏是错误的,即使它们是不同的类型,所以以下失败:

由于我使用的是 g++,我希望使用他们的可变参数宏语法会取得成功,但不幸的是没有。以下:

只匹配new(xyx) A(),不匹配new A()

我知道有文章写过为什么这是不可能的,但我觉得我已经很接近了,一定有办法。有什么明显的我失踪了吗?

0 投票
5 回答
10080 浏览

c++ - 错误记录 C++ 预处理器宏 __LINE__、__FUNCTION__

我试图将一个简单的错误记录合并到我现有的应用程序中,目前它报告错误只是使用cout所以我希望使用操作员保持类似的界面<<。但是我希望它记录发生错误的行和函数,但我不想__LINE__, __FUNCTION__每次需要记录时都必须输入。有谁知道我可以用来允许__LINE__宏在另一个函数中使用的技巧,而不是报告调用行?希望这是有道理的。

而不是每次都这样

我只想能够做到:

0 投票
4 回答
851 浏览

c - 在 C 中说“#define FOO FOO”有什么意义?

我遇到了一些C代码,其中作者到处使用以下成语:

这样做有什么意义?typedef 还不够吗?对于一些不稳定的C编译器来说,这是一种解决方法吗?

0 投票
2 回答
1408 浏览

c# - C# 中的预处理器指令

我似乎在使用 C# 中的预处理器指令时遇到了问题。我创建了一个 Visual Studio 2008 C# win forms 应用程序。我添加这个:

当我在调试中运行时,我看到了预期的“调试模式”。但是,当我切换到发布、编译和运行 .exe 时,我仍然看到“处于调试模式”文本。在我的项目属性中,我DEBUG检查了定义常量。我什至得到了上面代码的正确颜色编码语法。是什么赋予了?

0 投票
6 回答
32706 浏览

c++ - #include 指令:相对于哪里?

我查看了The C++ Programming Language试图找到这个问题的答案。当我#include "my_dir/my_header.hpp"在标题中时,它在哪里寻找这个文件?它是相对于标题,相对于包含它的源文件还是其他什么?

0 投票
25 回答
15665 浏览

c++ - 我可以对宏使用哪些技巧?

在我们的遗留代码以及现代代码中,我们使用宏来执行漂亮的解决方案,如代码生成等。我们同时使用###运算符。

我很好奇其他开发人员如何使用宏来做很酷的事情,如果他们使用它们的话。

0 投票
3 回答
1635 浏览

c++ - 宏和 Visual C++

我试图更好地了解宏在现代C++ 和 Visual C++ 中的位置(如果有的话),还参考了 Windows 编程库:宏在这些情况下解决了什么问题(如果有)没有就无法解决使用它们?

我记得从这篇博客文章中读到了谷歌浏览器对宏的 WTL 使用(除其他外),它们也在 MFC 中使用 - 这是该博客文章中的一个宏示例,我想用大量的解释如果可能,请详细说明:

我已经在 MSDN 上阅读了这些与宏有关的 文章,但我也在尝试学习编写或避免宏以及在何处/何时使用它们的最佳实践。