__line__c ++ Makro

__line__c ++ Makro
Die Präprozessoren sind die Programme, die unseren Quellcode haben, bevor der Kompilierungsprozess beginnt. Diese Präprozessoren enthalten einige Richtlinien wie #Define, #include usw. Es gibt insgesamt 4 Haupttypen von Präprozessorrichtlinien. Einer von ihnen ist Makros. Makros enthalten einen Code in einem Programm, das einen bestimmten Namen erhält. Wenn der Compiler auf den Namen trifft, ersetzt der Compiler den Namen durch den realen/tatsächlichen Code. Die Anweisung "#define" definiert ein Makro.

Makro ist eine Abkürzung, die für einen Code in einer Programmiersprache steht. Diese Makros helfen dabei, den Code zu vereinfachen und zu reduzieren, um Redundanz und sich wiederholende Codierung zu vermeiden. So dass auch Fehler verringert werden, die größtenteils aufgrund der wiederholten Codierung auftreten. Der Hauptvorteil gegenüber Makros besteht darin, dass er den Code umwandelt und ein lesbareres Montageprogramm erstellt.

Makroerweiterung

Ein Makro enthält einen Namen, eine Reihe formaler Parameter und den Codekörper. Der Makroame wird mit dem Parametersatz verwendet und durch ein Code -Stück ersetzt, der von seinem Körper generiert wird. Dies bildet eine Makroerweiterung. Dies ermöglicht dem Programmierer, Pseudooperationen, die wünschenswerten Operationen zu erstellen und zu definieren, die nicht als Prozessoranweisungen implementiert sind. Makro hat eine bestimmte Qualität, in der es das Programm automatisch schreibt. Der Name Makro wird so geschrieben, wie es ein Schlüsselwort im Code ist. Es fungiert als Aufruf an dieses spezielle Makro, genau wie ein Funktionsaufruf. Dann wird dieser Name durch einen anderen Code des Makrokörpers ersetzt, wie wir oben beschrieben haben. Dieser Ersatz des Anrufs durch die verarbeitete Kopie ist die Erweiterung des Makroaufrufs. Und es wird auch sowohl in C als auch C ++ verwendet.

Sobald ein Makro definiert ist, können wir es nicht zu einem anderen Wert neu definieren, ohne die erste ursprüngliche Definition zu beseitigen. Es ist jedoch möglich, das Makro mit derselben Definition bereits definierter Makros neu zu definieren. Die #undef -Richtlinie ist dafür verantwortlich, die Definition eines Makros zu beseitigen. Sobald die Definition entfernt ist, können wir das Makro jetzt mit einem anderen Wert neu definieren.

Makros in c++

Es gibt zwei Arten:

  1. Objektähnliche Makros
  2. Funktionsähnliche Makros

Objektähnliche Makros

Objektähnliche Makros nehmen kein Argument auf. Dies sind Kennungen, die durch den Wert ersetzt werden. Diese werden hauptsächlich verwendet, um numerische Werte und Konstanten darzustellen.

#define pl 3.17

PL ist der Name des Makros, der durch den Wert 3 ersetzt wird.17.

Funktionsähnliche Makros

Diese Arten von Makros können Argumente akzeptieren. Diese Makros sehen aus wie ein Funktionsaufruf. Nehmen Sie beispielsweise ein Beispiel, bei dem Max der Name des Makros ist.

#define max (a, b) ((a)<(b)?(a): (b))

Makros generieren normalerweise nicht die Funktionsaufrufe.In C ++ sind Inline -Funktionen vorzuziehen.

Vordefinierte Makros

Microsoft C/C ++ - Compiler mit vordefinierten MSVC -Makros, die von der Sprache C ++, dem Ziel der Kompilierung und den Compiler -Optionen abhängen. MSVC unterstützt vordefinierte Präprozessor -Makros, die nach ANSI/ISO C99 -Standards erforderlich sind. Diese vordefinierten Makros verwenden keine Argumente und können weder neu definiert werden.

Viele vordefinierte Makros können in C/C ++ - Quellcode/Programmen verwendet werden. Einige von ihnen werden hier beschrieben, die am häufigsten verwendet werden.

__Datum__
Das Kompilierungsdatum des Programms in der Datei wird durch dieses Funktionsmakro dargestellt. Das Datum ist eine Zeichenfolge für das Format des Montages-Jahres-Jahres und ein konstanter Wert. Diese Art von Makro ist immer definiert.

__Zeit__
Es zeigt die Zeit für die Übersetzung der vorverarbeiteten Einheit. Ähnlich bis heute hat es ein spezifisches Format, in dem es schriftliche Stunden sind: Minuten: Sekunden, genauso wie die Zeit zurückgegeben wird.

Diese Art von Makro ist auch immer definiert.

__Datei__
Dies repräsentiert den Namen der aktuellen Datei. Es erweitert sich zu einer wörtlichen Zeichenfolge. Dies stellt sicher, dass der Pfad, der zur Datei führt, angezeigt wird. Es ist ein immer definierter Makro.

__Linie__
Es repräsentiert die Zeilennummer im Ganzzahlformat einer aktuellen Quelle. Dieses Makro wird wie andere definiert und sein Wert wird mit Hilfe der #line geändert.

Jetzt werden wir einige Beispiele für __line__c ++ Makrofunktion hervorheben.

__Linie__
Um eine Vorstellung von der Arbeit dieses Makros zu bekommen, haben wir hier ein Beispiel zitiert. Zunächst wird eine Bibliothek für den Eingangs- und Ausgangsstrom verwendet. Dann haben wir ein Funktionsfehlerprotokoll verwendet, das das Protokoll der Fehler beibehält. Dies hat einen Parameter, um die Zeile in Form einer Zeichenfolge und einer Nachricht zu akzeptieren. Diese Funktion zeigt die Zeilennummer mit der Nachricht an, die vom Hauptprogramm an das Makro übergeben wird.

#Define Log (MSG) Fehlerlog (__line__, MSG)

Danach haben wir ein Makro definiert. Dadurch wird die Meldungslinienzeichenfolge aus der Hauptfunktion akzeptiert, die als Argument übergeben wurde, wenn dieses Makro aufgerufen wird. In ähnlicher Weise wird die Fehlerprotokollfunktion mit Zeilenmakro und der Nachricht als Parameter aufgerufen. Die Datei wird mit einer Erweiterung der gespeichert .C Quellcode -Datei. Da wir die LINUX -Plattformergebnisse sehen müssen, gehen Sie zum Terminal und wenden Sie die Befehle an, um die Datei zu kompilieren und auszuführen. Verwenden Sie einen G ++ - Compiler für c++.

$ g ++ -o f f.C
$ ./F

Sie sehen. Aus diesem Beispiel haben Sie die Funktionalität eines __line__ -Makros gesehen. Aber im nächsten Beispiel sind alle Makros gemeinsam im Programm. Wir haben "Cout" verwendet, um Linien zu drucken. Jede Zeile enthält ein anderes Makro, und dieser Wert wird angezeigt. Zum Beispiel für das Datum, das wir verwendet haben:

Std :: Cout << ("Date :%s\n" , __Date) << std ::endl;

Jetzt werden wir die Ausgabe sehen. Sie sehen.

Verwendet/Vorteile von Makros

  • Weniger Platz ist besetzt, da er die Erklärung langer Variablen in kurze Umwandlung umwandelt.
  • Wenn ein Makro mit einem Namen verwendet wird, der der aktuellen Anweisung eine Bedeutung gibt, ist es einfacher, das Makro zu verstehen als die langen Codes.
  • Makros können den Müll nicht aufräumen oder entfernen usw., selbst. Es hängt vom Programmierer ab, und er entscheidet, wann das Makro ausgelegt ist, um sie zu beenden.
  • Die Ausführungsgeschwindigkeit eines Programms wird erhöht, was ein wesentlicher Vorteil der Verwendung eines Makros im Code ist.

Abschluss

'__line__c ++ Makro' ist ein Artikel, der über die grundlegenden Funktionen des Makros geschrieben wurde, indem die Typen und auch die vordefinierten Makros beschrieben werden und deren Typen fördert. Alle diese Funktionen werden mit Hilfe eines Beispiels erklärt. Makros können leicht implementiert werden und benötigen weniger Zeit für die Zusammenstellung der Codes. Diese Funktionen werden von Programmierern entwickelt, die mit einem kleinen Code im Basisquellenprogramm Innovationen und Bedingungen erstellen möchten. Am Ende wird der Artikel zu diesem Zweck von der Verwendung von Makro im Quellcode begleitet und beschreibt, wie sie in einigen Aspekten von Vorteil sind.