C中的#define和const之间的区别

#define是预处理程序指令。因此,当我们使用#define定义宏时,它会在编译前用其值替换为代码。因此,当编译器对代码一无所知时,宏值也将被替换。

常量实际上是一个变量。通过声明此变量,它将占用存储单元。但是我们不能直接更新常量类型变量的值。我们可以使用一些指针值来更改它。

有时程序员可能会认为使用宏比使用const更好,因为这不会占用任何额外的空间到内存中,但是对于某些优秀的编译器而言,优化的代码不会受到影响。它们非常相似。