gpt4 book ai didi

c - #define是否需要设置数据类型?

转载 作者:行者123 更新时间:2023-12-04 11:37:39 25 4
gpt4 key购买 nike

我有个问题。当我在c中创建#define VAR 5时,是否需要定义类型?像:#define VAR (unit_8) 5

我想象一下,编写此C代码时发生了什么。

#define VAR 15000
void foo(uint_8);
void foo(uint_8 c) { c++; }
int main() {
foo(VAR);
return 0;
}

最佳答案

您不能在#define语句中声明变量。这些仅是预处理程序的语句,仅是文本替换。

在您的情况下,VAR不是变量,而是预处理器处理的一种常量。

你可以做

#define VAR 15000
uint_16 a = VAR;


但是VAR本身绝对不是变量,而仅仅是预处理器文本替换。在预处理程序运行之后,编译器将把以上代码视为:

uint_16 a = 15000;


如果需要使用常量,可以执行以下操作:

const int VAR = 15000;


代替。

关于c - #define是否需要设置数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33254228/

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