Beste antwoord
#define is pre-processor-instructie in C-taal.
Alle instructies met een # zijn preprocessor verklaringen.
1.
#define MAX\_STUDENTS 200
#define wordt gebruikt om declareer macroconstanten (van elk type), zoals hierboven weergegeven. Als een waarde op een aantal plaatsen in de code wordt gebruikt, wordt het onderhoud van de code eenvoudig. Wanneer de waarde van MAX\_STUDENTS moet worden gewijzigd, hoeft deze alleen op één regel code te worden gewijzigd in plaats van op meerdere plaatsen.
Nadeel van deze benadering is debugger, herkent deze waarde niet.
int arr [MAX\_STUDENTS];
Kan ook worden gebruikt in voorwaardelijke compilatie, zoals hieronder getoond
#define WINDOWS
#ifdef WINDOWS
..
.. code of Windows OS
..
#else
..
.. code of Linux OS
..
#endif
OPMERKING: #undef kan worden gebruikt om de definitie van
2 ongedaan te maken.
#define SQUARE (x) (x * x)
macrofuncties zijn als normale functies, behalve dat preprocessor de methodeaanroepen vervangt in plaats van de functie aan te roepen tijdens runtime.
Voordelen zijn dat de overhead van functieaanroepen wordt vermeden, dus de uitvoering is sneller
SQUARE (2 + 3)
Nadeel is dat de macrofunctie zich niet gedraagt als normale functies. Overweeg bijvoorbeeld de bovenstaande macro-aanroep SQUARE (2 + 3), wat resulteert in een verkeerde waarde 11, waar als normale functie 25 retourneert.
Het wordt aanbevolen om de macrofunctie te gebruiken (in plaats van de normale functie), wanneer de grootte is een of twee regels en heeft geen bijwerkingen, zoals hierboven weergegeven.
Antwoord
#define is een C preprocessor richtlijn gebruikt om macros te definiëren.
Laten we dat opsplitsen.
Een preprocessor-instructie is een programma-instructie die wordt aangeroepen voordat de programma-compilatie plaatsvindt. Eigenlijk kan elke regel gevolgd door een # -teken is een preprocessor. Dit omvat ook de include -correctief. De preprocessorrichtlijnen worden gebruikt om algemene instructies te geven of vereiste gegevens die worden gebruikt binnen een programma.
Een macro is een codeblok waaraan een naam is gegeven. Elke keer dat die naam voorkomt is repla ced door de waarde van de macro. Stel dat ik een macro heb gedefinieerd met de naam AMOUNT waarvan de waarde 200 is. Elke keer dat het woord AMOUNT in het programma wordt gebruikt, wordt het vóór de compilatie vervangen door het getal 200. In tegenstelling tot variabelen, waar de gegevens daadwerkelijk in de gedragen zich eerder als aliasnamen.
De syntaxis van de #define-instructie is als volgt:
#define MACRONAME value
OF
#define MACRONAME (expression)
Een macro kan zowel een numerieke als een tekenwaarde (moet tussen aanhalingstekens staan) worden toegewezen. Macros kunnen worden gebruikt als alle andere constante variabelen.
Je kunt een macro ook ongedaan maken met de #undef-instructie. Hier is de syntaxis:
#undef MACRONAME
//MACRONAME can no longer be used in the program
Ik hoop dat mijn antwoord nuttig was.