2011-01-05 149 views
0

我想知道,如果我們#定義這樣#defines是否會降低性能?

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

特定功能將使用上述降低性能?

回答

1

編號#define是一個預處理器指令,意味着預處理器在任何地方都可以看到POST_NOTIFICATION符號,它將用[[NSNotificationCenter ...]]代碼代替它。

0

不,它不會降低性能。 #define指令是預處理指令,它們在編譯之前在代碼中被「替換」,所以最終的二進制代碼是相同的。 然而,你應該避免使用定義...它似乎可以使代碼更具可讀性,但它並沒有真正做到這一點......另外對於像例子中的單行你給予的好處可能不是那麼高用它。

但是要回答你的問題,如果你使用這個構造,最終的二進制文件並沒有不同,所以沒有性能下降。