#Define和Float之间的区别?

Jos*_*ane 5 floating-point objective-c ios c-preprocessor

说这样做有什么区别?

#define NUMBER 10
Run Code Online (Sandbox Code Playgroud)

float number = 10;
Run Code Online (Sandbox Code Playgroud)

在什么情况下我应该使用一个而不是另一个?

Phi*_* T. 14

#define NUMBER 10
Run Code Online (Sandbox Code Playgroud)

将创建一个将由预处理器执行的字符串替换(即在编译期间).

float number = 10;
Run Code Online (Sandbox Code Playgroud)

将在二进制文件的数据段中创建一个浮点数并将其初始化为10.即它将具有一个地址并且是可变的.

所以写作

float a = NUMBER;
Run Code Online (Sandbox Code Playgroud)

将与写作相同

float a = 10;
Run Code Online (Sandbox Code Playgroud)

而写作

float a = number;
Run Code Online (Sandbox Code Playgroud)

将创建一个内存访问.