c-preprocessor 相关问题

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

将 C 宏定义为自身的目的是什么? (见 glibc 头文件)

在 Ubuntu Linux 20.04 机器上,在 /usr/include/x86_64-linux-gnu/bits/resource.h 中,我看到如下代码: 枚举 __rusage_who { /* 调用过程。 */ RUSAGE_SELF = 0, #定义RUSAGE_SELF

回答 1 投票 0

Visual C++ 中的预处理器工具 __COUNTER__

我需要在编译时在我的代码中生成一系列连续的数字。我以这样的方式尝试了“__COUNTER__”: 无效测试1() { printf("test1(): 计数器 = %d “, __柜台__); } 维...

回答 3 投票 0

使用 add_compile_definitions() 来初始化数组

我正在尝试使用在 CMakeLists.txt 文件中覆盖的预处理器定义来初始化 uint8_t 数组。例如: #ifndef MY_CHAR_ARRAY #define MY_CHAR_ARRAY {0x00, 0x01, 0x02} #

回答 1 投票 0

为什么不带 undef 的宏重定义会导致程序格式错误

按照标准,在没有使用#undef之前禁止宏重定义: 但以下重新定义无效: #define OBJ_LIKE (0) // 不同的标记序列 #定义

回答 2 投票 0

禁用宏,然后禁用块

使用像assert()这样的宏,我可以像#define assert(_expr_) (void)0一样定义它,使其在编译时被删除,并且编译器不会尝试评估它的参数。 但我...

回答 1 投票 0

预处理器宏用点连接字符串

我正在尝试在微控制器库中编写一个宏 set_DIR() 。 我的程序: #包括 #包括 #包括 typedef 结构体 VPORT_struct { 你...

回答 1 投票 0

C++ 中 __FILE__、__LINE__ 和 __FUNCTION__ 的用法

假设您的 C++ 编译器支持它们,是否有任何特殊原因不使用 __FILE__、__LINE__ 和 __FUNCTION__ 进行日志记录和调试? 我主要关心的是给予...

回答 6 投票 0

是否可以在 C 中打印预处理器变量?

是否可以将 C 中预处理器变量的值打印到 stderr?例如,我现在拥有的是: #定义 PP_VAR (10) #如果(PP_VAR > 10) #警告 PP_VAR 大于 10 #

回答 5 投票 0

C 宏定义可以引用其他宏吗?

我想弄清楚是否是这样的(用C编写): #定义 FOO 15 #定义栏 23 #define MEH (FOO / BAR) 被允许?我希望预处理器替换每个瞬间...

回答 6 投票 0

基于 C++ 的 DSL,支持使用带有参数列表的运算符[]

我需要用 C++ 编写一个自定义 DSL,用于定义 Pokémon、能力、向特定 Pokémon 教授能力,然后模拟决斗。到目前为止,我已经成功地使用了 DSL 的大部分内容

回答 1 投票 0

为什么多次使用token粘贴操作符的包裹宏时,这个宏无法展开

我想在c++中实现一些与反射相关的功能,但是当我想扩展由两个宏连接而成的宏时,出现了一些问题。 我尝试重现这个问题...

回答 1 投票 0

'cpp' vs. “clang”预处理行为

a.txt 一段文字 #include“b.txt” b.txt 乙文本 如果我们使用 cpp -P a.txt 预处理上述文件,我们会在控制台中得到以下输出: 一段文字 乙文本 然而,如果我们尝试预先

回答 1 投票 0

C:在编译时构建和使用字符串文字的预处理器宏?

我有一个 C 函数,用于格式化具有以下签名的字符串: 整数 字符串格式 ( 字符* dst , 常量 char* fmt , ... ); 我通常这样称呼它: 字符缓冲区[20]; 常量...

回答 1 投票 0

C++ 宏标识符中的双冒号

我有一个用于我使用的 C++ 项目的日志库。它在名称空间记录器中工作:在其中我拥有所有必要的类定义和预定义的记录器; 命名空间记录器 { 班级

回答 1 投票 0

C 中的预处理翻译单元到底是什么?

我对C99标准草案中的描述感到困惑。第 5.1.1.1 节“程序结构”指出: 源文件以及通过

回答 1 投票 0

在keil ARM编译器中比较enum/define

我在使以下条件编译工作时遇到困难: 枚举 { MIDI_USB_DEV_MCU_IDX, MIDI_WC_BLE_IDX, MIDI_CONN_1_IDX, MIDI_CONN_2_IDX,MIDI_IN_OUT_UARTS_NB }; #定义

回答 1 投票 0

连接预处理器定义以形成字符串

我有这个: #define VERSION_MAJOR 1 #define VERSION_MINOR 0 #define 修订版 b #define VERSION VERSION_MAJOR.VERSION_MINOR REVISION #define _STRINGIFY(x) #x #定义 STRINGIFY(x) _STRINGIFY(x) INT...

回答 3 投票 0

为什么C++头文件中使用#ifndef和#define?

我通常在头文件的开头看到这样的代码: #ifndef HEADERFILE_H #定义HEADERFILE_H 文件末尾是 #万一 这样做的目的是什么?

回答 5 投票 0

在 VS Code 中激活 ifdef 指令

大家好,Stackoverflow 社区, 我想知道如何在 VS Code 中激活 ifdef 指令。与tasks.json 或c_cpp_properties.json 文件有关吗? 以下是我的代码: #ifde...

回答 1 投票 0

是否有一个 C 预处理器可以替换连续的 else 和 ifdef 指令?

我有一段代码,看起来像这样, #ifdef A printf(“A”); #别的 #ifdef B printf(“B”); #万一 #万一 else 和 ifedef B 可以替换为 elif 定义 B as...

回答 1 投票 0

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