Was ist #define in C?


Beste Antwort

#define ist eine Präprozessoranweisung in C-Sprache.

Alle mit # vorangestellten Anweisungen sind Präprozessoranweisungen Anweisungen.

1.

#define MAX\_STUDENTS 200

#define wird verwendet, um Deklarieren Sie Makrokonstanten (eines beliebigen Typs) wie oben gezeigt. Wenn ein Wert an mehreren Stellen im Code verwendet wird, wird die Wartung des Codes einfach. Wenn der Wert von MAX\_STUDENTS geändert werden muss, muss er nur in einer Codezeile anstelle mehrerer Stellen geändert werden.

Der Nachteil dieses Ansatzes ist, dass der Debugger diesen Wert nicht erkennt.

int arr [MAX\_STUDENTS];

Kann auch bei der bedingten Kompilierung verwendet werden, wie unten gezeigt.

#define WINDOWS

#ifdef WINDOWS

..

.. code of Windows OS

..

#else

..

.. code of Linux OS

..

#endif

HINWEIS: Mit #undef können Sie die Definition von

2.

#define SQUARE (x) (x * x)

Makrofunktionen sind wie normale Funktionen, außer dass der Präprozessor die Methodenaufrufe ersetzt, anstatt die Funktion zur Laufzeit aufzurufen.

Vorteile sind, dass Funktionsaufruf-Overhead vermieden wird, sodass die Ausführung schneller ist

QUADRAT (2 + 3)

Nachteil ist, dass sich die Makrofunktion nicht wie normale Funktionen verhält. Betrachten Sie beispielsweise den obigen Makroaufruf SQUARE (2 + 3), der zu einem falschen Wert 11 führt, wobei die normale Funktion 25 zurückgibt.

Es wird empfohlen, bei der Größe die Makrofunktion (anstelle der normalen Funktion) zu verwenden ist eine oder zwei Zeilen und hat keine Nebenwirkungen, wie oben gezeigt.

Antwort

#define ist ein C Präprozessor Direktive zum Definieren von Makros .

Lassen Sie uns das aufschlüsseln.

Eine Präprozessoranweisung ist eine Programmanweisung, die aufgerufen wird, bevor die Programmkompilierung stattfindet. Tatsächlich jede Zeile, auf die eine # ist ein Präprozessor. Dies schließt auch das include -Drektiv ein. Die Präprozessoranweisungen werden verwendet, um allgemeine Anweisungen oder erforderliche Daten bereitzustellen, die verwendet werden innerhalb eines Programms.

Ein Makro ist ein Codeblock, dem ein Name zugewiesen wurde. Jedes Vorkommen dieses Namens wird ersetzt durch den Wert des Makros. Angenommen, ich habe ein Makro mit dem Namen AMOUNT definiert, dessen Wert 200 ist. Jedes Mal, wenn das Wort AMOUNT im Programm verwendet wird, wird es vor dem Kompilieren durch die Zahl 200 ersetzt. Im Gegensatz zu Variablen, in denen tatsächlich Daten gespeichert sind, Makros verhalten sich eher wie Aliasnamen.

Die Syntax der Direktive #define lautet wie folgt:

#define MACRONAME value

OR

#define MACRONAME (expression)

Einem Makro kann sowohl ein numerischer als auch ein Zeichenwert (muss in Anführungszeichen stehen) zugewiesen werden. Makros können wie folgt verwendet werden Alle anderen konstanten Variablen.

Sie können die Definition eines Makros auch mit der Direktive #undef aufheben. Hier ist die Syntax:

#undef MACRONAME

//MACRONAME can no longer be used in the program

Ich hoffe, meine Antwort war hilfreich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.