Wofür sind C-Makros nützlich?

Ich geschrieben habe ein wenig Cund Lesen kann ich es gut genug, um eine Allgemeine Vorstellung von dem, was es tut, aber jedes mal, wenn ich begegnet bin, ein makro-es hat mich völlig geworfen. Ich habe bis zum Ende daran erinnern, was das makro ist und ersetzen Sie es in meinem Kopf, wie ich gelesen habe. Diejenigen, die mir begegnet, die waren intuitiv und einfach zu verstehen waren immer so kleine mini-Funktionen, so dass ich mich immer gefragt, warum Sie waren nicht nur Funktionen.

Kann ich verstehen, die Notwendigkeit zu definieren, die verschiedenen Bau-Typen, die für debug-oder cross-Plattform baut der Präprozessor aber die Fähigkeit zu definieren, die beliebige Substitution scheint sinnvoll zu sein, nur um eine bereits schwierige Sprache noch schwieriger zu verstehen.

Warum wurde so ein Komplexes Präprozessor eingeführt für C? Und hat jemand ein Beispiel für die Verwendung von es, wird mich verstehen, warum es scheint immer noch verwendet werden für andere Zwecke als einfach, wenn #debug-Stil conditional compilations?

Edit:

Gelesen hatte, eine Reihe von Antworten, die ich eben noch nicht bekommen. Die häufigste Antwort ist der inline-code. Wenn die inline-Schlüsselwort es nicht tut, dann hat Sie entweder einen guten Grund, um es nicht tun, oder die Umsetzung muss repariert werden. Ich verstehe nicht, warum ein ganz anderer Mechanismus erforderlich ist, das bedeutet "wirklich inline diesem code" (neben der form der code geschrieben wird, bevor die inline-war rund). Ich versteh auch nicht die Idee, dass erwähnt wurde, dass "wenn Ihr zu dumm zu sein, setzen in einer Funktion". Sicherlich irgendein Stück code, der nimmt eine Eingabe und produziert eine Ausgabe am besten in eine Funktion. Ich glaube, ich kann nicht, denn ich bin nicht verwendet, um die micro-Optimierungen zu schreiben Caber der Präprozessor fühlt sich einfach wie eine komplexe Lösung, um ein paar einfache Probleme.

InformationsquelleAutor der Frage Jack Ryan | 2009-03-17

Schreibe einen Kommentar