预处理器宏与变量的区别#define 是一个预处理器指令用于在编译前将某些文本替换为指定的值。它没有类型信息是简单的文本替换。#define 声明的常量不会占用内存它只是在预处理阶段做替换。const 是C语言中的一个类型修饰符用来声明常量它会为常量分配内存并指定类型。常量的值在程序运行期间不可修改。类型安全#define 没有类型信息编译器无法检查类型。因此它在某些情况下可能导致类型不匹配的问题。const 声明的常量具有类型可以利用编译器的类型检查来避免错误。作用域#define 声明的常量是全局的通常在整个文件中有效甚至跨函数调用除非使用#undef来取消定义。const 声明的常量遵循变量的作用域规则可以限制常量的作用范围。#define 更适用于简单的常量替换、条件编译和宏函数它不具备类型检查灵活性高但容易引发错误。const 更适用于需要类型安全、具有作用域限制的常量声明特别是在涉及到变量和复杂数据类型时