From what I understand , #define blah 8
is a macro . While , #
is the pre-processor directive .
Can we say #include,#if,#ifdef,etc. are also macros , or are they called something else ? Or is it that macro is just a term used for #define statements only?
Please correct me if I am wrong.
Macro represents a group of commonly used statements in the source programming language. Macro Processor replaces each macro instruction with the corresponding group of source language statements. This is known as the expansion of macros.
The #define creates a macro, which is the association of an identifier or parameterized identifier with a token string. After the macro is defined, the compiler can substitute the token string for each occurrence of the identifier in the source file.
The C preprocessor is a macro processor that is used automatically by the C compiler to transform your program before actual compilation. It is called a macro processor because it allows you to define macros, which are brief abbreviations for longer constructs.
Lines that start with #
are preprocessing directives. They are directives that tell the preprocessor to do something.
#include
, #if
, #ifdef
, #ifndef
, #else
, #elif
, #endif
, #define
, #undef
, #line
, #error
, and #pragma
are all preprocessing directives. (A line containing only #
is also a preprocessing directive, but it has no effect.)
#define blah 8
is a preprocessing directive, it is not a macro. blah
is a macro. This #define
preprocessing directive defines the macro named blah
as an object-like macro replaced by the token 8
.
#include
, #if
, etc. are features of the preprocessor.
#define blah 8
Is a preprocessor directive and declares a new macro named blah.
#define
statement.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With