C中的#define类似于Java中的静态变量吗?

Roh*_*han 8 c java variables static

在C中我们可以写:

#define LOWER 0
Run Code Online (Sandbox Code Playgroud)

在Java中我们可以写:

static int lower = 0;
Run Code Online (Sandbox Code Playgroud)

这些语句是否与其他方法使用较低的变量具有相同的目的?

Mat*_*ark 0

静态,没有。

最后,是的。

final int LOWER = 0;
Run Code Online (Sandbox Code Playgroud)

一个final变量只能初始化一次。

static变量属于类,而不是实例。

然而

它们的功能可能相似,但操作方式却完全不同。

最终变量仍然只是一个变量。C(++) 中的A#define实际上是在构建时解释的,并相应地修改二进制输出,使值在运行时成为常量。

#define更有效率。