Как говорит Филипп, форма #define
создает замену в вашем коде на этапе предварительной обработки перед компиляцией.Поскольку #define
не является такой же переменной, как number
, ваше определение жестко запекается в исполняемом файле во время компиляции.Это желательно, если то, что вы представляете, является действительно константой, которую не нужно вычислять или читать откуда-то во время выполнения и которая не изменяется во время выполнения.
#defines
очень полезны дляделая ваш код более читабельным.Предположим, вы выполняли физические вычисления - вместо того, чтобы просто вставлять 0,98f в свой код везде, где вам нужно использовать константу гравитационного ускорения, вы можете определить ее только в одном месте, и это повысит читабельность вашего кода:
#define GRAV_CONSTANT 0.98f
...
float finalVelocity = beginVelocity + GRAV_CONSTANT * time;
РЕДАКТИРОВАТЬ Удивлен, что вернулся и нашел мой ответ и увидел, что я не упомянул, почему вы не должны использовать #define
.
Как правило, вы хотите избежать #define
и использоватьконстанты, которые являются фактическими типами, потому что #define
s не имеют области видимости, а типы полезны как для IDE, так и для компиляторов.
См. также этот вопрос и принятый ответ: Каков наилучший способсоздать константы в Objective-C