Снижает ли #defines производительность? - PullRequest
0 голосов
/ 05 января 2011

Я хотел бы знать, что если мы # определим конкретную функцию, подобную этой

#define POST_NOTIFICATION(NAME, OBJECT) [[NSNotificationCenter defaultCenter] postNotificationName:NAME object:OBJECT]

будет ли при использовании выше снижать производительность?

Ответы [ 2 ]

1 голос
/ 05 января 2011

Нет.#define - это директива препроцессора, означающая, что когда препроцессор видит символ POST_NOTIFICATION, он заменяет его кодом [[NSNotificationCenter ...]].

0 голосов
/ 05 января 2011

Нет, это не приведет к снижению производительности.Директивы #define - это директивы препроцессора, которые «заменяются» в коде перед компиляцией, поэтому конечный двоичный код такой же.Однако вам следует воздерживаться от использования определений ... Может показаться, что код становится более читабельным, однако на самом деле он этого не делает ... Также для однострочных, как в приведенном вами примере, преимущество, вероятно, не настолько великоit.

Однако, чтобы ответить на ваш вопрос, конечный двоичный файл не отличается, если вы используете эту конструкцию, поэтому снижение производительности не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...