问题标签 [preprocessor-directive]

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 回答
477 浏览

c++ - 使用预处理器指令定义输出路径

使用以下伪代码:

表示我想如何将当前项目(一个 dll)构建到 C:/MyBuild/mydll.dll 中,我将如何仅使用预处理器指令来完成此操作?

0 投票
3 回答
4871 浏览

c++ - 在预处理器指令中使用模板参数?

是否可以在预处理器指令中使用非类型常量模板参数?这是我的想法:

当我尝试使用类似的东西时Blah<Foo<0xFFFF>>,VC++ 2010 抱怨我们尝试使用的行中的括号不匹配#if。我猜预处理器对模板一无所知,而这种事情不在它的领域。说啥?

0 投票
2 回答
1769 浏览

iphone - Objective-C 预处理器指令

如何用预处理器指令语言编写以下内容?

0 投票
7 回答
13313 浏览

c# - When to use preprocessor directives in .net?

I think this is a simple question so I assume I'm missing something obvious. I don't really ever use preprocessor directives but I was looking at someone's code which did and thought it was something I should be familiar with.

So I looked at the msdn example here it has the code:

My two questions are:

  • in the example above why do they define DEBUG? I was under the impression that was set if you compile in debug v. release mode?
  • looking at the other example which has #define MYTEST and then writes to the console dependent on if it 'defined', but how does this differ from just using a variable? What am I missing here?
0 投票
6 回答
7306 浏览

c - -Werror 导致编译器在#warning 时停止。我能做些什么来防止这种情况发生?

首先,我希望它停止警告。但我也想打印出一些信息性消息(比如“回来实现这个!”)。

不幸的是,我的编译器不支持#info, #message,#pragma message()等。

我知道有-Wno-error=<something>,但我的 google-foo 很弱,我似乎无法找到<something>for #warning。我试过-Wno-error=warning了,那只是说“没有-Wwarning”。与“ warn”相同。

有什么建议么?

对于它的价值,我正在使用 Tensilica Xtensa编译器 xt-xcc,它似乎是 GNU 的衍生产品,或者至少使用了 GNU 前端。它是 8.0.0 版本。

0 投票
3 回答
12833 浏览

c# - 我可以根据 .NET 框架版本制作预处理器指令吗?

这是我想做的一个具体例子。

考虑string.Join函数。在 .NET 4.0 之前,只有两个重载,都需要一个string[]参数。

从 .NET 4.0 开始,有新的重载采用更灵活的参数类型,包括IEnumerable<string>.

我有一个库,其中包含一个Join基本上完成 .NET 4.0string.Join功能的功能。我只是想知道我是否可以使这个函数的实现依赖于目标.NET 框架。如果是 4.0,它可以简单地在string.Join内部调用。如果 3.5 或更早版本,它可以调用自己的内部实现。

  1. 这个想法有意义吗?
  2. 如果它确实有意义,那么最合乎逻辑的方法是什么?我想我只是假设预处理器指令最有意义,因为在针对 .NET 版本早于 4.0 时string.Join,使用IEnumerable<string>参数调用甚至不会编译;所以我使用的任何方法都必须在编译之前进行。(例如,在运行时检查Environment.Version属性是行不通的。)
0 投票
3 回答
2601 浏览

c++ - 预处理器指令

当我们看到#include <iostream>时,它被称为预处理器指令

#include---> 指令

而且,我认为:

<iostream>---> 预处理器

但是,“预处理器”和“指令”是什么意思?

0 投票
6 回答
128640 浏览

c - gcc预处理后可以输出C代码吗?

我正在使用一个开源库,它似乎有很多预处理指令来支持除 C 之外的许多语言。这样我就可以研究这个库在做什么我想看看我在预处理后编译的 C 代码,更像我要写的。

gcc(或 Linux 中常用的任何其他工具)能否读取该库但输出的 C 代码已将预处理转换为任何内容并且也可供人类阅读?

0 投票
3 回答
910 浏览

c# - C# 预处理器指令

在 C++ 中,我们可以这样做:

现在,在 C# 中并不那么简单。我有一种测试 BigEndian 的方法,但要在编译时定义结构,我们如何在 C# 中获得相同的效果?我在想我可以拥有像“BoardBig”和“BoardLittle”这样的类,并使用工厂根据 IsBigEndian 检查获得我需要的类。对于 _WIN64 检查,我可以有诸如“Position_64”和“Position_32”之类的类。这是一个好方法吗?由于 C# 不能定义像 #define IsBigEndian 1 或 what have ya 这样的语句,所以不知道该怎么做。

0 投票
1 回答
466 浏览

c - 循环优化

C编程中,我们可以使用#pragma预处理器指令启用/禁用循环优化。

在哪种情况下,应该关闭循环优化?