#defines in objective-c

Tid*_*dly 3 xcode objective-c c-preprocessor

#defines如何在Objective-C中工作?

我有C/C++的背景,我现在正在尝试选择Objective-C.#defines似乎在objective-c中的工作方式与它们在c和C++中的工作方式相同,其中编译器只是将所有对定义的引用替换为它们应该表示的内容.

当我尝试在Objective-C中使用#defines时,它们有时只能工作.就像我做这样的事情;

#define NUMBER 5

int myArray[NUMBER];
Run Code Online (Sandbox Code Playgroud)

我得到编译器错误,说有一个方括号丢失,如果我使用这一行而不是它工作正常;

int myArray[5];
Run Code Online (Sandbox Code Playgroud)

当然这些都应该是一回事吗?

此外,如果我尝试在任何类型的方程中使用#define值,我会得到类似的编译器错误.这段代码不起作用;

#define NUMBER 5

float var = NUMBER * 0.2;
Run Code Online (Sandbox Code Playgroud)

哪个好,

float var = 5 * 0.2;
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么会这样,或者Objective-C编译器如何以不同的方式处理#defines.顺便说一下,我正在使用XCode,只是因为这会产生影响.

Car*_*rum 6

#define在Objective-C中的工作方式与它在C中的工作方式完全相同.在我尝试的快速测试中,您的所有示例都可以正常工作.您可能还有其他问题导致您看到的错误 - 您可以发布实际代码和错误消息的文本吗?


Luk*_*uke 6

我通常会看到类似的问题,因为我有一个意外的分号#define.