c-preprocessor 相关问题

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

c++ 预处理器中的 #define 变量对于程序中的所有文件来说是全局的吗?

我想知道我们是否有一个带有 #define 的预处理器指令定义,这对于 c++ 程序中的所有 .cpp 文件来说是全局的(也适用于 c)。例如,如果我们有两个这样的代码

回答 1 投票 0

#if 和 #elif 在 Cpp 中无法按预期工作

我正在尝试制定某种简单的方法来定义我使用的mcu,并且通过定义mcu,应该包含不同的头文件。我尝试使用 #if 和 #elif 指令来做到这一点: #包括“

回答 1 投票 0

预处理器变量的比较

这段代码无法编译的原因是什么? #define THREADMODEL ASC #if ThreadMODEL==NOASC // 该块应该被忽略并且代码应该编译 #错误 #万一 int main() { }

回答 1 投票 0

如何使用宏在c中使用标记粘贴连接两个标记来进行字符串化?

想要连接两个标记并仅使用宏以及标记粘贴和字符串化运算符将结果转换为字符串。 #包括 #定义 concat_(s1, s2) s1##s2 #定义康卡...

回答 1 投票 0

抑制 C 宏变量替换

我有这段代码(实际上是垃圾收集 Forth 系统解释器的一部分): #定义原语(名称)\ 做 \ { \ VocabEntry* 条目 = (VocabEntry*)gc_alloc(sizeof(

回答 3 投票 0

当我尝试在函数中应用#define 时出了问题

我尝试在条件语句中应用#define,但是,似乎出了问题。 // 模式默认为forward #定义FOR if (模式==“前进”) { ...

回答 1 投票 0

#define X Defined(Y) 是有效的 C/C++ 宏定义吗?

我在某处读到过 #define X 定义(Y) 无效,但似乎有效。 这是一个例子: #define WIN_PLAT 已定义(_WIN32) #如果WIN_PLAT #undef WIN_PLAT # 定义 WIN_PLAT 1 #别的 #...

回答 1 投票 0

在 .c 文件中包含守卫的目的是什么?

我通常在 C 源文件的开头看到这样的代码 #ifndef _INCLUDE_GUARDS_C #定义_INCLUDE_GUARDS_C int main() { } int 函数 1() { } #万一 int 函数2() { } 我...

回答 2 投票 0

包含防护的推荐命名约定是什么?

包含守卫通常如何命名?我经常看到这样的情况: #ifndef FOO_H #定义FOO_H // ... #万一 但是,我认为这不是很直观。没有看到文件名,它是不同的...

回答 9 投票 0

当定义将某些内容设置为整数时是否需要括号?

在 C 语言中,#define 宏应该使用括号。参见例如C 宏和括号中参数的使用。 然而,在嵌入式代码中,我经常看到它甚至与整数一起使用......

回答 1 投票 0

指向#define的指针

我只是想知道是否可以有一个引用#define常量的指针。如果是的话我该怎么做?

回答 5 投票 0

C++98 的 stdint (gcc/clang)

为什么 GCC/clang 在编译 C++98 时抱怨包含 cstdint 而不是 stdint.h? 使用 -std=c++98 -x c++ -Wall -Wextra -pedantic 输出编译 #include : 这个

回答 1 投票 0

重置 C/C++ 预处理器 #line 物理文件/行

我有一个代码生成器,它将获取一些用户编写的代码并将其块嵌入到更大的生成文件中。我希望底层编译器在存在缺陷时提供良好的诊断...

回答 6 投票 0

如何转义包含指令中的字符?

假设我有一个名为 a>b.h 或 a"b.h 的头文件,如何转义 include 指令中的 > 或 " 字符? // 这不起作用 #include b.h>

回答 2 投票 0

在编译时在文字的第一个条目处插入 #define 字符串文字的长度

我正在使用 ESP-ZigbeeSDK 编写一个 C 程序,其中我需要设置一个默认字符串,例如 #define mystring。但 ZigBee 要求文字的第一个字符表示字符串 #d 的长度...

回答 1 投票 0

如何在 Linux 上关闭 gcc 预处理器?

我已经用谷歌搜索关闭Linux上的gcc预处理器有一段时间了(使用确切的短语),一切都无关紧要。例如,我想关闭除

回答 3 投票 0

在 C 编译时评估的预处理器函数

我想编写在以下位置评估的预处理器函数/数组 编译时间。例如,如果我定义 #define MYARR[] {5,4,3,2,1,0} 然后,代码 int x = R[0]; 应表示为 INT...

回答 5 投票 0

如何将#define的数据类型设置为long double?

我有一个c代码,我使用#define命令定义了一些用于预处理的变量。 但是,我认为有一些方法可以在 float 和 double 数据类型之间切换,例如: #

回答 1 投票 0

预处理器在`operator""_name`中定义替换吗

考虑 Aykhan Hagverdili 提供的以下示例: #包括 使用 std::operator""s; #定义 foobar auto s = "你好世界"s; 有些编译器会

回答 2 投票 0

嵌套参数的递归宏

我想在编译时使用宏定义一个数据结构。数据结构看起来像: 结构体{ 整数a; 整数b; 整数c; 无符号整型顶部; 首先是无符号整数; } ar...

回答 1 投票 0

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