问题标签 [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 投票
1 回答
314 浏览

c - Eclipse CDT 中是否有预定义的配置类型宏?

我正在使用 CDT 构建一个由许多项目组成的系统。一些系统元素取决于配置类型 - 调试或发布。

我知道这些名称并没有什么特别之处,而且我可以定义自己的配置。但是,由于这两个是内置的,是否有预定义的宏来判断活动配置是一个还是另一个?

因为系统中有很多项目,给每个项目添加一个_DEBUG_,_RELEASE_符号有些繁琐。

0 投票
1 回答
2909 浏览

c++ - Visual Studio 2012 附带了哪个版本的 Dinkumware STL Lib?

在 Visual Studio 的早期版本中,有一个预定义的宏“_CPPLIB_VER”,它报告了这个版本的 VS 附带的 Dinkumware STL 库的版本。截至 2012 年,我无法找到或使用此宏 - 它未定义,我无法在网上找到有关此问题的任何信息。

VS2012 不再使用 Dinkumware STL Lib 了吗?宏改名了吗?

Windows 7 x64 Microsoft Visual Studio 2012 专业版

0 投票
5 回答
8124 浏览

objective-c - 如何编写“clamp”/“clip”/“bound”宏来返回给定范围内的值?

我经常发现自己在写类似的东西

我希望能够把它写成一个单行宏。它必须没有副作用,就像现有系统宏 MIN 和 MAX 一样,并且应该适用于与 MIN 和 MAX 相同的数据类型。

谁能告诉我如何把它变成一个宏?

0 投票
0 回答
2002 浏览

gcc - GCC 为架构 X 预定义的宏

我已经用谷歌搜索了 gcc 使用的每个架构的预定义宏列表,但没有成功。是否有这样的列表或者我是否需要 -dM 用于交叉编译器。

0 投票
2 回答
2427 浏览

c++ - C++ 在编译时获取月份作为数字

我有一个必须打印修订字符串的 c++ 项目。修订字符串由公司指定,协议包括构建时间为 yyyy/mm/dd。

我曾经将其指定为构建系统中的宏,但这不再是一个选项,因为会弄乱预编译的标头(在日期变化时进行增量构建)。

我正在尝试通过从编译器获取构建日期来实现这一点,但在 Mmm__DATE____TIMESTAMP__给出月份。

有什么想法可以将月份作为数字吗?


根据下面的答案,我完成的版本是:

谢谢

0 投票
2 回答
27362 浏览

c - 这个#ifdef __GNUC__ 是关于什么的?

我在代码中找到libmagic这些行。他们的意思是什么?

是什么__GNUC__意思?
似乎检查是否安装了 GCC

是什么__attribute__((unused))
这里有一个代码片段,但没有解释:如何最好地消除有关未使用变量的警告?

__GNUC__和 和有什么不一样_MSC_VER
有一些解释_MSC_VER,但它到底是关于什么的?
如何检测我是否正在使用特定的 Visual Studio 版本编译代码?

最后一个问题:
我怎样才能#ifdef检查哪个编译器正在编译我的代码?

0 投票
3 回答
3612 浏览

c++ - 为什么 __FUNCTION__ 是未定义的?

我有一个__FUNCTION__通过 crtdefs.h 使用预定义宏的 C++ 库。该宏在此处记录。这是我的用法:

我的.cpp

crtdefs.h

该库(如果重要,则编译为静态库)由同一解决方案中的另一个项目使用,这是一个用 C# 编写的 WPF 应用程序。

当我编译 lib 时,出现此错误:

标识符“L__FUNCTION__”未定义。

根据文档,如果将 /P 或 /EP 传递给编译器,则不会扩展宏。我已经证实他们不是。是否存在此宏不可用的其他情况?

0 投票
1 回答
303 浏览

c - Linux 头文件中的 __VMKLNX__ 是什么?

在许多 Linux 内核模块(硬件驱动程序)的源头文件中,可以发现如下行:

__VMKLNX__在这个模块的源代码中没有定义。猜测是__VMKLNX__“C”系统特定的预定义宏。可能与虚拟机甚至 VMware 有关。但是我找不到任何权威来源来证实这一点。

什么是以及如何/在哪里可以找到这__VMKLNX__部分的含义?

0 投票
2 回答
2005 浏览

c++ - 来自 __FILE__ 的基本文件名

我只需要__FILE____FILEW__宏返回整个路径的文件名。

我定义了以下内容:

我使用它如下:

我收到以下错误:

错误 C2064:术语不计算为采用 1 个参数的函数

当我尝试以下宏时:

如下

当我实际尝试使用 MY_TRACE 宏时,我得到:错误 C2146:语法错误:在标识符 'L' 之前缺少 ')'

我错过了什么?谢谢

0 投票
4 回答
120 浏览

c - 为什么我的宏无法编译?

我所期望的:

LINE_FILE = "文件文件名的行"

并且printf()可以输出这个字符串。

http://ww2.sinaimg.cn/large/005FchG6gw1esb0pvwxr3j30he06jjt7.jpg