
[英]C++ Macro expanding in ordinal numbers
我有一个代码可以在各种平台上编译,这些平台具有不同的功能打开或关闭(每个由一个特定的定义表示),我正在摸索如何执行以下 switch (int) 语句来保持“case (number):”有序且连续。 每个 case 代码块都是 10 行左右的块,我想这是无关紧要的,但是完美的解决方案是找到一种发出 ...
[英]C++ Macro expanding in ordinal numbers
我有一个代码可以在各种平台上编译,这些平台具有不同的功能打开或关闭(每个由一个特定的定义表示),我正在摸索如何执行以下 switch (int) 语句来保持“case (number):”有序且连续。 每个 case 代码块都是 10 行左右的块,我想这是无关紧要的,但是完美的解决方案是找到一种发出 ...
[英]Function or macro definition which one to use
我有一些经常使用的宏所以我在想在我的情况下使用 function 还是使用宏定义会更好? 我使用的宏代码示例: 根据上面的代码,使用什么会更好? 继续使用宏定义还是迁移到 function? ...
[英]Check OpenCL vendor ID at kernel-compile-time?
在 OpenCL kernel 中,如果针对 NVIDIA GPU,我想做一件事,否则我想做另一件事,即 我应该放什么而不是MAGIC_HERE ? ...
[英]Prepend/append string to each element in C preprocessor list?
最终,我想要的是:首先,有一个声明为 C 预处理器宏的变量名列表; 比如说,在test_cpp.c中:#define VARLIST \ var_one, \ var_two, \ var_three, \ var_four 这些最终将成为代码中的实际变量名——但是,当然,预处理 ...
[英]How I can I parse comments from macro expansion using libclang?
给定以下 C++ 程序:#define SOME_MACRO \ (void) x; /* some comment in macro */ \ int main() { int x = 0; /* some comment in main */ SOME_MACRO SOM ...
[英]What does this C++ define macro do?
这个定义宏有什么作用? 我假设这会将给定的字符串打印到标准 output,但它什么也没有打印出来。 我错了吗? ...
[英]BOOST_PP_SEQ_FOR_EACH cannot expand as expected
代码如下或在godbolt上。 BOOST_PP_SEQ_FOR_EACH(macro, data, seq)将扩展为 我想出了这个 APPLY_MACRO 作为BOOST_PP_SEQ_FOR_EACH中的“ macro ”,并使用真正的宏(例如PARAM_TYPE和PARAMS_TYPE_EN ...
[英]what does two __pragma inside a define macro means?
我试图理解在一个定义宏中有两个 __pragma 运算符的一行代码: 我知道 pragma 可以在 c99 标准的宏中使用。 但我只知道这里给出的Pragma in define macro的简单用例任何人都可以解释这个的目的是什么以及为什么我们有双 __pragma 运算符由定义宏内部的后缀“0 ...
[英]How to check for the value of a constant for conditional compilation?
我有一个常量#define 'ed 是这样的: 我想稍后根据FRUIT被#define编辑的内容有条件地编译代码。 我尝试了以下方法,但它似乎总是评估为真。 ...
[英]How to fix the macro expansion problem in C
如何解决下面的宏扩展问题? 宏正在如下展开并导致错误。 我正在使用 MSVC 2019 我什至尝试使用如下的辅助宏,但仍然出现相同的错误。 期望扩展:ADD_VAL(GET_VAL); --> ADD_VAL(3, 2); --> 3 + 2 ...
[英]How does the below C macro example compile?
下面的代码没有给出正确的 output。 而下面的代码给出了正确的(最近的)output。 这些代码究竟有何不同? 为什么会这样? 我无法理解上述两种代码如何给出不同答案之间的区别。 ...
[英]define a function in a c macro with a dynamic name coming from a function-like C macro
好吧,这听起来很奇怪,标题有点令人困惑,但我的意思基本上是这样的:#define make_name(id) cool_name_##id #define my_cool_macro(id, type) void fun_##make_name(id)(type arg1) my_cool_mac ...
[英]Change C/C++ Preprocessor priority
我想更改预处理器定义过程的优先级。 请参阅以下代码: 代码运行,但“f”宏将始终在“$”宏之前处理。 当前output: 预计 output: 谢谢。 ...
[英]C Preprocessor #if string
有没有一种方法可以像这样使用#define选择性地包含代码? 我觉得这应该有效,但没有。 有办法绕过它吗? 有关信息,我想选择在 STM32 上使用哪个定时器。 我有很多地方有像这样的代码 但是在其他地方我需要不同的代码行。 ...
[英]How to loop over variable names?
我需要做一些分配如下。 在 struct REGS 中,tile 按名称排列; 而在外面,瓷砖按索引排列。#include <stdio.h> typedef struct TILE {} TILE; typedef struct REGS { TILE tile00, t ...
[英]The execution process of preprocessing commands in C++
最近我正在学习元编程中的一些高级编程技巧,我在理解 C++ 中预处理命令的执行时遇到了一些问题。原来我假设预处理命令是按照它们在 C++ 代码中的顺序执行的。 但是,给定以下代码,它不会产生预期的结果。 我认为它会首先执行替换 生产 然后执行 生产 但是,当我编译这段代码并在终端中运行它时,我得到 ...
[英]C++ vs C Macro string concatenation difference
我尝试编写如下宏:取自链接,我将相同的规则应用于我的软件,但没有成功。 我注意到 C 和 C++ 有一些不同,但我不明白为什么,宏是预处理器工作。 我还注意到将来自枚举器的值传递给宏的一些差异。 用于在线尝试的报告链接ideone 上演示的代码链接允许选择不同的语言 C 可以,但更改为 C++ 它不 ...
[英]Can a preprocessing token be shielded from expansion?
假设我们定义了一个宏: 是否可以定义一个宏 这样 扩展到FOO而不是42 ? ...
[英]Add preprocessor definitions to FetchContent in cmake
我正在使用 CMake 编译我的 C++ 项目并且我有依赖项,它是使用FetchContent下载的,但默认情况下,该依赖项使用异常,在我的项目中被禁用,所以我必须将预处理器定义传递给这个依赖项以禁用他们。 这就是我所做的: 看起来 CMake 将add_compile_definitions传递到 ...
[英]C++ Macro to get only even variadic arguments passed
是否可以制作一个ONLY_EVEN()宏来执行以下翻译: 使用任意数量的 arguments,使用可变宏参数? ...