gpt4 book ai didi

c - 预处理#define

转载 作者:行者123 更新时间:2023-12-02 08:55:50 26 4
gpt4 key购买 nike

我无法理解预处理器的工作原理以及 ## 在这个特定示例中代表什么

#include <stdio.h>

#define TEMP_KEY(type,Key) (TEMP_##type | Key)

enum TEMPKey_Type
{
TEMP_UNKNOWN = 0,
TEMP_SPECIAL ,
TEMP_UNICODE
};

enum Actual_Key
{
TEMP_RIGHT = TEMP_KEY(UNKNOWN,0x1),
TEMP_LEFT = TEMP_KEY(SPECIAL,0x1),
TEMP_UP = TEMP_KEY(UNICODE,0x1)
};

int main()
{
printf("\n Value of TEMP_RIGHT : %d ",TEMP_RIGHT);
printf("\n Value of TEMP_LEFT : %d ",TEMP_LEFT);
printf("\n Value of TEMP_UP : %d ",TEMP_UP);

return 0;
}

这是怎么做到的#define TEMP_KEY(type,Key) (TEMP_##type | Key)工作或者在预处理期间 TEMP_##type 是如何替换的以及到底替换了什么?

最佳答案

“##”表示连接。因此 TEMP_RIGHT = TEMP_KEY(UNKNOWN,0x1) 变为 TEMP_RIGHT = TEMP_UNKNOWN | 0x1,(“TEMP_”和“UNKNOWN”连接在一起)

关于c - 预处理#define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com