c-preprocessor 相关问题

C和C ++计算机编程语言的宏预处理步骤。此标记还可用于有关源自或具有相同功能的其他编译器/语言的问题,例如Objective-C或C#中的#directives。

宏调用函数

我需要一个宏(或一个函数,但最好是一个宏),它接受一个函数名和无限数量的参数,然后将参数传递给函数。我们假设这个宏是MACROFOO。 #...

回答 2 投票 3

C #error宏可以显示多行消息吗?

我尝试将#error指令与GCC编译器一起使用,如下所示:#error“充电引脚没有区别!一个引脚不能用于多种用途!”这说,我应该使用双引号,所以......

回答 2 投票 2

从C ++宏创建字符串列表和枚举列表

为了使我的代码更短更容易更改,我想替换枚举{E_AAA,E_BBB,E_CCC}; static const char * strings {“AAA”,“BBB”,“CCC”};使用宏,如INIT(AAA,BBB,...

回答 8 投票 19

gcc 4.8.4“pragma GCC诊断未应用”

使用g ++(Ubuntu 4.8.4-2ubuntu1~14.04)4.8.4在预编译头中我有以下内容:63 #pragma GCC诊断推送64 #pragma GCC诊断忽略“-Wunused-variable”65 #include

回答 1 投票 1

如何使宏在for循环中生成代码?

我在代码审查中注意到以下代码:for(int i = 0; i <50; ++ i){switch(i){case 0:return f1();案例1:返回f2(); ...案例49:返回f50(); ...

回答 2 投票 -2

可以使用C预处理器来判断文件是否存在吗?

我有一个非常大的代码库(读取:数千个模块),它们在许多项目中共享代码,这些代码都运行在具有不同C ++编译器的不同操作系统上。不用说, ...

回答 9 投票 55

如何在c ++预处理程序指令中使用“#”作为字符

我想将#include重新定义为另一个单词。我不知道C ++预处理是否可以做到这一点,但我正在尝试:#define import #include #define io import io这不起作用......

回答 1 投票 0

将C文件导出到新文件时,删除#if 0和#endif之间的代码

我想删除toy.c文件中的所有注释。从C / C ++代码中删除注释我发现我可以使用gcc -E -fpreprocessed -P -dD toy.c但是我的一些代码(比如我不赞成的弃用函数......)

回答 3 投票 2

如何在传递给C / C ++宏之前解析int变量? [关闭]

我正在尝试执行以下代码:#define channel1 10 #define channel(id)channel ## id int main(){int id = 1; cout << channel(id)<

回答 3 投票 -3

重载C宏

有没有更好的方法来“重载”像这样的宏?我需要一个接受各种参数的宏。 #define DEBUG_TRACE_1(p1)std :: string p [] = {p1}; log _log(__ FUNCTION __,p,1)#...

回答 2 投票 13

如何在C中使用宏内的switch语句?

我想在C中的宏中使用switch语句。我有以下代码段:枚举错误{ERROR_NO_MEMORY,ERROR_INVALID_INDEX,ERROR_INVALID_VALUE}; #define MSG_NO_MEMORY ......

回答 3 投票 1

使用预处理指令检查是否包含标题?

是否可以使用预处理指令测试文件是否已包含在内?我想实现这样的事情:#ifincluded assert.h #error“不应该包含assert.h”#endif At ...

回答 1 投票 0

将宏函数定义为(0)是什么意思?

我在一些源代码中看到了这种定义#define somemacro(a,b,c)(0)我在相同的源代码中看到:#define anothermacro(a,b,c)(1)任何机构都可以解释这个那种宏定义?......

回答 1 投票 -2

解释使用以下宏获得的输出

#包括 #define ABC(x)DEF(x)#define DEF(x)GHI(x)#define GHI(x)printf(x)int main(void){int x = 100; int y = 200; ABC((“x + y之和为%d”,x + y));返回0; } ......

回答 1 投票 -7

C ++预处理器#define-ing a keyword。标准是否符合标准?

帮助解决关于bool和1的问题的评论中正在进行的辩论:符合标准的C ++预处理器是否允许使用#define重新定义语言关键字?如果是这样, ...

回答 3 投票 19

预处理器:#if比较两个值

我正在为ATmega168微控制器设置UART。我的第一个代码不起作用。在检查时,我遇到了工作程序中使用的头文件。它使用预处理器......

回答 1 投票 2

根据c ++标准在宏定义中推送/弹出宏时的行为是什么

我刚才回答了一个关于附加到C宏的问题我可以附加到预处理器宏吗?正如答案所说,以下内容适用于clang和g ++,但不适用于msvc #define pushfoo ...

回答 1 投票 0

我可以附加到预处理器宏吗?

在标准C或GNU扩展中有什么方法可以将内容附加到宏定义中吗?例如,给定一个定义为#define List foo bar的宏,我可以追加bas,以便它扩展,就好像我...

回答 3 投票 9

编译期间忽略行指令

有没有办法让GCC编译程序并在打印错误消息时忽略#line指令?

回答 1 投票 0

如何仅将C预处理器应用于某些(#if /#endif)指令?

我想知道是否可能,如果是的话,我可以在C ++源文件上运行C预处理器,如cpp,只处理条件指令#if #endif等。我想要其他指令......

回答 4 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.