在C中使用#define max 100然后stack[max]和直接使用stack[100]有什么区别?

问题描述 投票:0回答:1

所以我正在研究如何在 C 中使用数组实现堆栈,我在很多示例代码中注意到的一个常见的事情是 #define 的使用

#define MAX 100

int stack[MAX];

我的问题是这比直接方法有什么优势

int stack[100];

我假设定义方法可能会提供某种性能提升。或者两种方法产生相同的结果吗?

arrays c stack
1个回答
0
投票

根据定义,它们产生相同的结果。 C(和 C++)中的宏是简单的文本替换,您看到的宏编译器将替换您所拥有的宏。

使用宏的原因不是为了性能,而是为了文档和易于编辑。您可以为宏指定一个有意义的名称,这样您就知道它的用途。您不会将该宏与代码中可能存在的任何其他 

#define

常量混淆。如果您需要更改它,您可以在一个地方更改它,并且您使用它的所有地方都会自动更新。

    

© www.soinside.com 2019 - 2024. All rights reserved.