问题标签 [predefined-macro]

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 投票
3 回答
1386 浏览

c++ - 是否有 linuxthreads 和 nptl 的具体定义

我有一个程序,它对于 linuxthreads 和 nptl 的工作方式必须不同。

这个库中是否有定义,可以在我的程序中使用来检测,是使用 nptl 还是使用 linuxthreads?

UPDATE1:对于运行时有一个getconf GLIBC_LIBPTHREADS,但是对于编译时呢?

0 投票
2 回答
705 浏览

gcc - gcc 为不同的 SPARC 处理器预定义了哪些宏?

运行在不同 SPARC 处理器上的 GCC 编译器为 C 程序预定义了哪些宏。操作系统是Linux。

那么如何在编译时区分 UltraSPARC、SuperSPARC、Niagara、SPARC64 等。

谢谢

0 投票
2 回答
452 浏览

visual-studio - Visual Studio 2005 中是否有任何预定义的宏,例如 _MSC_BUILD(vs2008 支持)?

我希望使用任何预定义的宏,例如 _MSC_BUILD(来自 vs2008),因为我想使用编译器的修订号。

但是我在vs2005中找不到。

感谢您的帮助。

0 投票
1 回答
9894 浏览

c++ - 如何在 Code::Blocks 中设置预定义的宏

有没有办法为我本地安装的 Code::Blocks 设置一些预定义的宏。

为了详细说明这一点,基本上我希望某些块仅在 pc 上编译,而不是在我将代码发送到的任何地方。实现此目的的一种方法如下:

我要实现同样的目标,但我不想包含 #define MYPC 行,并且想在 IDE 中的某个位置添加它。我知道如何在 Visual Studio 中执行此操作,并且我认为它也存在于 Code::Blocks 中。谢谢。

0 投票
2 回答
121 浏览

c++ - 链接到正确的库

我不认为我在这里的问题已经在这里得到了回答。所以在这里,我有一个静态库,我会定期维护和更新。我也正确更新了版本号。现在,我使用这个库的应用程序必须链接到完全相同版本的库,而不是旧版本或新版本。我尝试的一件事是在库头文件中使用预定义的宏并在我的应用程序中检查它。它有效,但这样你只能确保正确的头文件。如果是错误的库,是否有任何技术可以使链接失败?我希望这个问题有点清楚。

哈里

0 投票
5 回答
6426 浏览

c++ - 在编译时检测 ICC 与 GCC

如何在编译时检测我使用的是 gcc 还是 icc?

(我很困惑地发现 icc 定义了__GNUC__——甚至__GNUC_MINOR__还有__GNUC_PATCHLEVEL__!为什么?)

0 投票
6 回答
55205 浏览

c++ - 如何使用#pragma message() 使消息指向文件(lineno)?

为了将“待办事项”项目添加到我的代码中,我想在编译器输出中添加一条消息。
我希望它看起来像这样:

为了利用 Visual Studio 构建输出功能通过双击导航到相应的行。

但是__LINE__宏似乎扩展为一个int,这不允许写作

会不会有别的办法?

0 投票
3 回答
772 浏览

objective-c - 是否有扩展为当前选择器的预处理器宏?

可能重复:
动态检索当前方法的名称
Obj-C 内省:方法如何引用它自己的选择器?

这适用于 Objective-C,是否有预处理宏或其他东西来获取当前选择器的 SEL 值?具体来说,我正在寻找类似的东西:

它有点像__FILE__宏,但这是为了获取当前选择器。将它传递给其他人非常有用,而不必担心如果选择器名称发生更改则对其进行更新。

0 投票
2 回答
714 浏览

c - 检测目标 CPU 上的对齐内存需求

我目前正在尝试构建一个可以在各种机器上运行的代码,从手持口袋和传感器到数据中心的大型服务器。

这些架构之间的(许多)差异之一是对齐内存访问的要求。

“标准”x86 CPU 上不需要对齐内存访问,但许多其他 CPU 需要它,如果不遵守规则,则会产生异常。

到目前为止,我一直在通过使用打包属性(或 pragma)强制编译器对已知有风险的特定数据访问保持谨慎来处理它。它工作正常。

问题是,编译器非常谨慎,以至于在此过程中损失了很多性能。

由于性能很重要,我们最好重写部分代码以专门用于严格对齐的 CPU。另一方面,这样的代码在支持非对齐内存访问(例如 x86)的 cpus 上会更慢,所以我们只想在需要严格对齐内存访问的 cpus 上使用

现在的问题是:如何在编译时检测目标架构是否需要严格对齐的内存访问?(或反过来)

0 投票
7 回答
123614 浏览

c - 如何将 __DATE__ 和 __TIME__ 预定义宏作为两个整数使用,然后进行字符串化?

想要使用__ DATE __ 和 __ TIME __作为整数,以便在编译时为我的代码提供自动化版本。

COMPLETE_VERSION在 a 中作为字符串获取const unsigned char []

应该输出1.4.1432.2234 的东西。

一种可能的解决方案可能是但没有奏效:convert - date -to -unsigned-int

在编译时convertint-date-and-time-string-to-just-integers-in-c的上下文中, 可以参考expanssion-and-stringification-how-to-get-the-marco-name-not-its-value