Course Content
C Preprocessing
C Preprocessing
Symbolic Constant
Each #define line consists of three parts:
The body of a macro can be not only a single numeric value, but also other macros or entire expressions:
main
#include <stdio.h> #define TWO 2 // macros with value. #define RESULT TWO*TWO // TWO is replaced by the number 2. #define PRINT printf("result = %d", RESULT); int main() { PRINT return 0; }
Every time the compiler encounters “TWO”, it will simply substitute its value 2
.
The macro is immutable. Once defined, it is a permanent textual substitution within the file or scope where it is defined.
Why do we need this? Why not just use variables?
What is better to use?:
- If the value never changes, const is better, because it is safer;
- If you need to substitute a simple number or text, you can use a macro.
- Create an object macro
add
, the body of the macro is an addition operator+
. - Use a macro to add any two numbers.
Swipe to start coding
- Create an object macro
add
, the body of the macro is an addition operator+
; - Use a macro to add any two numbers.
Solution
Thanks for your feedback!
Symbolic Constant
Each #define line consists of three parts:
The body of a macro can be not only a single numeric value, but also other macros or entire expressions:
main
#include <stdio.h> #define TWO 2 // macros with value. #define RESULT TWO*TWO // TWO is replaced by the number 2. #define PRINT printf("result = %d", RESULT); int main() { PRINT return 0; }
Every time the compiler encounters “TWO”, it will simply substitute its value 2
.
The macro is immutable. Once defined, it is a permanent textual substitution within the file or scope where it is defined.
Why do we need this? Why not just use variables?
What is better to use?:
- If the value never changes, const is better, because it is safer;
- If you need to substitute a simple number or text, you can use a macro.
- Create an object macro
add
, the body of the macro is an addition operator+
. - Use a macro to add any two numbers.
Swipe to start coding
- Create an object macro
add
, the body of the macro is an addition operator+
; - Use a macro to add any two numbers.
Solution
Thanks for your feedback!