c-preprocessor

    1热度

    4回答

    我有2个定义,其中一个带有一个字符串,另一个带有一个数字。如何从字符串和数字定义一个常量数组。这个数组中还有一些额外的常量。 我该如何编写这段代码,使之在数组foobar中具有0x22,0x41,0x42,0x42,0x21,来自定义的FOO和BAR? #define FOO "AB" #define BAR 33 extern int rs232_write(const unsigned

    3热度

    3回答

    我发现了一些代码行,这些代码行在C的源代码的预处理器块中变暗。我的编译器MS Visual Studio将其命名为“不活动的预处理器块”。这是什么意思,我的编译将不考虑这些代码行, 以及如何使其成为活动块?

    3热度

    1回答

    我想知道是否可以通过Boost预处理器序列完成以下操作。 (大多数SO问题以及Boost预处理器示例仅讨论1个序列) #define seq1 (a)(b)(c) #define seq2 (1)(2)(3) // Now iterate over both of them at the same time 这是我的动机。我必须为很多类型定义一些函数,例如 void add(int va

    2热度

    1回答

    这行: #define hash_hash # ## # 会产生##而是基于不是未定义行为: 如果结果不是一个有效的预处理标记,该行为是未定义 。 编辑: 换句话说,扩大hash_hash产生新令牌,由两个相邻的尖锐的迹象, 但这新令牌不是## 操作者 。 预处理标记的类别为: 预处理标记分​​为五大类:标识符, 预处理数字,字符串文字,标点符号和其他 是##新的令牌属于其他类别如果没有UB。

    -3热度

    2回答

    是什么这两个码的区别: #define check 0 int main(void) { #if check this is a normal line #endif return 0; } 这一个: int main(void) { /* this is a normal line */ return 0; } 他们是一模一样?

    -1热度

    1回答

    我必须从所有的宏定义的cpp文件数量巨大过滤掉,不包括警卫,例如: #if <NAME> #ifdef <NAME> #ifndef <NAME> #if defined(<NAME>) #if defined <NAME> !defined(<NAME>) !defined <NAME> #else if <NAME> #elif <NAME> 我要取回所有的名字,但他们是不

    6热度

    1回答

    使用C预处理器,您可以拥有某种高阶宏。事情是这样的: #define ABC(f) f(a) f(b) f(c) #define XY(f) f(x) f(y) #define CODE(x) foo_ ## x ABC(CODE) #undef CODE #define CODE(x) bar_ ## x XY(CODE) #undef CODE 输出是: foo_a fo

    0热度

    1回答

    我工作的一个项目中使用C.我的本地机器上 我想从PBL 借数据结构实现(http://www.mission-base.com/peter/source/) 当我下载zip来自PBL的github回购文件,其中有数百个文件。 自由使用的东西,从PBL库,我应该使用的#include“/path/to/pbl.h”我的项目文件#包括哪些文件? 有在PBL src文件夹中的许多文件,但我怀疑我会指向一

    -1热度

    1回答

    在这两个预处理器代码中,它们有什么区别?它们是如何使用的? #error "¡ERROR GRAVISIMO!" #warning "ABC está obsoleto. Use XYZ en su lugar."

    0热度

    2回答

    我希望你很好。 我有一个文件version.h包含在5 files.c中。 我编译时有5个警告: version.h中:10:2:警告: - SUB_VERSION2 version.h中:10:2:警告: - SUB_VERSION2 version.h中:10 :2:警告: - SUB_VERSION2 version.h中:10:2:警告: - SUB_VERSION2 version.h中