gpt4 book ai didi

c - 使用类对象宏是定义全局变量的好方法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:55 29 4
gpt4 key购买 nike

我的老师告诉我预处理器命令 #define 是声明全局变量的方法。基本上我使用 object-like macros

#define x 3

x 声明为全局变量。现在,我习惯于做类似的事情来定义这些类型的变量,我被建议不要再这样做了:

#include <stdio.h>

const int x = 3;

int main(void){...};

据我所知(考虑到我是 C 和一般编程的新手),如果我们谈论程序的工作原理,那么声明全局变量的两种方式实际上是相同的。假设我有这样的代码:

y = x * 3;

使用 #define x 3const int x = 3;,这段代码将毫无问题地编译和运行。现在,我肯定在这里遗漏了一些东西,但我真的看不出有什么不同!谁能温和地告诉我这个问题的重点是什么?

最佳答案

#define 用于创建一个常量,而不是一个变量,但现在它不被用于该目的。 #define x 3 是一个预处理器指令,基本上意味着“将源文件中所有位置的 x 替换为 3”。这就像在代码编辑器中使用“全字匹配”和“区分大小写”选项进行搜索和替换。

另一方面,

const 创建一个具有地址和范围以及所有内容的合法标识符。它可以像变量一样使用,甚至可以使用 & (地址)运算符。它只是不能分配给。

关于c - 使用类对象宏是定义全局变量的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778765/

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