Patrzę na Objective-C i zauważam, że na przykład deklaracja klasy interfejsu zaczyna się od @interface
. W porządku, nie ma problemu. W związku z tym tekst sugeruje, że nie ma przestrzeni pomiędzy @
i interface
. Jednak, gdy mijam następujący prosty przykład do kompilatora GCC w pliku *.m
:Czy spacje są dozwolone po rozpoczęciu deklaracji @ w obiekcie Objective-C?
@ interface A
@ end
kompilator przyjmuje kod bez zarzutu. Czy ktokolwiek może wskazać Mnie w kierunku odniesienia, które mówi jednoznacznie, czy @ interface
czy też nie jest akceptowalne w specyfikacji Celu C? W dokumentach Apple z 2008 i 2011 roku nie znalazłem niczego, co mogłoby powiedzieć w taki czy inny sposób poza prostym tekstem nawiązującym do wcześniejszego pytania.
Z góry dziękuję.
EDIT: Warto zauważyć, że Emacs wykonuje kolorowanie tekstu na podstawie tego, czy identyfikator jest słowem kluczowym, czy nie; słowa kluczowe są niebieskie, a słowa niebędące słowami kluczowymi - żółte. @interface
kolory niebieski i @ interface
kolory żółty. Podobne zachowanie występuje w Vimie.
Języki typu C wydają się luźne, gdy białe znaki mogą pojawić się w pobliżu symboli. Zgaduję, że przestrzeń naprawdę nie ma znaczenia, szczególnie jeśli, jak mówisz, kompiluje. – Almo
Tak, nie pamiętam, aby kiedykolwiek widziałem ten problem w dowolnej dokumentacji. W przeważającej części '@' służy do uruchamiania preprocesora Objective-C do robienia specjalnych rzeczy, w taki czy inny sposób, więc to decyduje o tym preprocesor, a nie kompilator C. (Dobre pytanie!) –
Interesujący punkt, Hot Licks, z wyjątkiem dokumentacji Objective-C, którą określiłem '@ interface' jest dyrektywą kompilatora, różniącą się od dyrektyw preprocesora, takich jak' # import'. –