/ / Czy #defines zmniejsza wydajność? - wydajność, ios4, makra

Czy #defines zmniejsza wydajność? - wydajność, ios4, makra

Chciałbym wiedzieć, że jeśli # zdefiniujemy określoną taką funkcję

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

czy użycie powyżej obniży wydajność?

Odpowiedzi:

1 dla odpowiedzi № 1

Nie. #Define jest dyrektywą preprocesora, co oznacza, że ​​gdziekolwiek preprocesor zobaczy symbol POST_NOTIFICATION, zastąpi go [[NSNotificationCenter ...]] kod.


0 dla odpowiedzi nr 2

Nie, nie zmniejszy to wydajności. Dyrektywy #define są dyrektywami preprocesora, które przed kompilacją są „zamieniane” w kod, więc końcowy kod binarny jest taki sam. Jednak powinieneś powstrzymać się od używania definicji ... Może wydawać się, że kod jest bardziej czytelny, jednak tak naprawdę nie robi tego ... Również w przypadku jednego wiersza, jak w przykładzie, który podałeś, prawdopodobnie nie jest tak wysoki w użyciu to.

Jednak, aby odpowiedzieć na twoje pytanie, końcowy plik binarny nie różni się, jeśli użyjesz tej konstrukcji, więc nie ma spadku wydajności.