2011-12-23 11 views

Odpowiedz

34

Nie, nie ma żadnej różnicy między nimi, gdy używany w ten sposób. Ta ostatnia forma (przy użyciu defined()) jest przydatna, gdy początkowy #if lub jeden z następujących warunków #elif wymaga bardziej złożonego testu. #ifdef nadal będzie działał, ale może być bardziej przejrzysty, używając w tym przypadku #if defined(). Na przykład, jeśli trzeba przetestować, czy zdefiniowano więcej niż jedno makro, lub jeśli jest równa określonej wartości.

Wariancja (wykorzystując obie w pliku) może zależeć od konkretnych subtelności w użyciu, jak wspomniano powyżej, lub po prostu słabej praktyki, przez brak spójności.

3

W kontekście, który podałeś, są one takie same: po prostu sprawdzasz istnienie jednego makrowego identyfikatora.

Jednak formularz #if umożliwia ocenę wyrażeń, które mogą być przydatne.

Powiązane problemy