Was bedeutet "makro" bedeutet in Objective-C?
Ich bin neu in der iOS-Entwicklung, und ich möchte nur wissen, die Bedeutung von makro in Objective-C?
Habe ich festgestellt, dass "makro" wird mit #define, aber immer noch nicht seine Bedeutung.
http://www.saturngod.net/ios-macro-define-value-with-condition
- Beachten Sie, dass die Makros nicht eine Spezialität von Objective-C (das wäre mehr accurante als iOS), und kann verwendet werden, auf andere Sprachen.
- Makros werden vom Präprozessor Definitionen. Was dies bedeutet ist, dass, bevor der code kompiliert wird, wird der Präprozessor durchsucht den code und, unter anderem, ersetzt die definition des Makros, wo immer es sieht, der name des Makros. Es tut nichts klüger als das.
- Ich habe abgelehnt, Ihre Bearbeiten, um die akzeptierte Antwort auf diese Frage (wo Sie versucht, ändern Sie die erste Zeile zu sagen, dass Abdul hatte Recht statt Larme Recht hatte). Das ist so unangebracht... Sie musste besser aufpassen, was Ihre Bearbeitung, es sei denn, Sie wollen, dass Ihr Konto gelöscht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein makro ist ein Stück code, das hat schon einen Namen gegeben. Wann immer der name verwendet wird, es ersetzt wird durch den Inhalt des Makros. Es gibt zwei Arten von Makros. Sie unterscheiden sich vor allem in dem, was Sie Aussehen, wenn Sie verwendet werden. Objekt-wie Makros ähneln Daten-Objekte, wenn verwendet, function-like Makros ähneln Funktionsaufrufe.
Einem Objekt-wie makro ist eine einfache Bezeichner, die ersetzt wird durch ein code-fragment. Es heißt Objekt-wie sieht es da wie ein Daten-Objekt im code, der es verwendet. Sie werden Häufig verwendet, um die symbolischen Namen für numerische Konstanten.
Erstellen Sie Makros mit der '#define' - Direktive. '#define' ist, gefolgt vom Namen des Makros und dann die token-Sequenz sollte es eine Abkürzung für,, das wird Verschieden bezeichnet, da das makro den Körper, die Erweiterung oder der Ersatz Liste. Zum Beispiel,
definiert ein makro mit dem Namen BUFFER_SIZE als Abkürzung für die token 1024. Wenn irgendwo nach dieser "#define " - Richtlinie es kommt ein Objective-C-Anweisung der form
Dem Objective C-compiler wird das gleiche Token, wie es wäre, wenn du geschrieben hättest
Können Sie auch Makros definieren, deren Verwendung sieht aus wie ein Funktionsaufruf. Diese werden als function-like Makros. Definieren Sie ein function-like makro verwenden Sie die gleichen '#define' - Richtlinie, aber Sie legte ein paar von Klammern unmittelbar nach dem Makronamen.
Wie:
Ja, Larme richtig ist. Makros können Sie in vielen Sprachen, es ist nicht eine Spezialität von objective-c-Sprache.
Makros werden vom Präprozessor Definitionen. Was dies bedeutet ist, dass, bevor der code kompiliert wird, wird der Präprozessor durchsucht den code und, unter anderem, ersetzt die definition des Makros, wo immer es sieht, der name des Makros. Es tut nichts klüger als das.
Fast wörtliche code-Ersetzung. z.B.-
Angenommen, Sie möchten eine Methode zum zurückgeben, das maximum von zwei zahlen. Sie schreiben ein makro, das zu tun diese einfache Aufgabe:
Einfach, nicht wahr? Sie verwenden Sie dann das makro in der code wie folgt:
EDIT:
Das problem ist, dass der Präprozessor ersetzt die makro-definition in den code vor der Kompilierung, also dies ist der code den der compiler sieht:
C Reihenfolge der Operationen erfordert die Summe 3 + a berechnet werden, bevor der ternäre operator angewendet wird. Sie sollen um den Wert zu speichern 3 + 2 in Folge, aber stattdessen fügen Sie 3 + 1 zuerst, und testen, ob die Summe größer als 2 ist, was es ist. So, gleich 2, anstatt der 5, die Sie erwartet.
Damit Sie das problem beheben, indem Sie einige Klammern und versuchen Sie es erneut:
Makros sind compile-Zeit-Konstanten. Das heißt, Sie werden durch aktuelle Werte ersetzt werden in der compile-Zeit.
Beim kompilieren sieht es tatsächlich wie
Wikipedia hat die Antwort, unter Makro.
Definition:
Verwendung:
Tastatur und Maus Makros, die erstellt werden, mithilfe einer integrierten makro-Funktionen werden manchmal auch als die Anwendung von Makros. Sie werden erstellt, indem die Durchführung der Sequenz einmal und lassen Sie die Anwendung, die Aufzeichnung der Aktionen. Eine zugrunde liegende makro-Programmiersprache, die am häufigsten eine Scriptsprache, direkten Zugriff auf die Funktionen der Anwendung können ebenfalls vorhanden sein.