VOOZH about

URL: https://www.geeksforgeeks.org/cpp/define-preprocessor-in-cpp/

⇱ #define in C++ - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

#define in C++

Last Updated : 23 Jul, 2025

In C++, #define is a preprocessor directive used to define a macro. are a way to represent a fragment of code or a constant value by giving it a name. When the preprocessor encounters the macro name in the code, it replaces it with the corresponding code fragment or value that is defined using the #define preprocessor. In this article we will learn about using #define in C++.

Syntax of #define in C++

We can define the two types of macro using #define:

  1. Constant Macros
  2. Chain Macros
  3. Macro Expressions
  4. Multiline Macros

Syntax for Defining Constant Macros

#define MACRO_NAME value

They are also called object-like macros by a number of people.

Syntax for Defining Chain Macros

#define MACRO1_NAME value1
#define value1 final_value

Syntax for Defining Expression Macros

#define MACRO_NAME (expression within brackets)

We can also define a macro expression that takes parameters:

#define MACRO_NAME(parameters)  (expression)

These types of macros are also called function like macros.

Syntax for Defining Multiline Macros

The backslash (\) here works as the joiner of the two values.

#define MACRO_NAME value \
value2 \
value3 \

Examples of #define in C++

Example 1: Macro Constant

In the following example we have used #define to assign a constant value to PI so that PI can be referred later in the program to calculate the area of the circle.


Output
Enter the radius of a circle: 
Area = 78.5625

Example 2: Macro Expression

In the following example we have used #define to define a for loop expression that will print the values present in an array.


Output
Geeks
for
Geeks
C++
Tutorial

Example 3: Chain Macros


Output
ALL_USERS: 100

Example 4: Multiline Macros


Output
Welcome to GeeksforGeeks

Properties of #define Macros

The following are some important properties of macros:

  1. Macros are like labels and not like variable names, we cannot reassign them any value later on in the program.
  2. Macros' values are substituted in the program in the preprocessing phase.
  3. Macro defined using the #define can be undefined using #undef.
  4. We can also check if the macro name is defined using #ifdef and #ifndef.

Applications of #define in C++

Following are some applications of #define:

  • #define is commonly used to define constants that are replaced by their values during preprocessing.
  • Used to define simple macros that removes the repetitive code from the program.
  • Used for conditional compilation to include or exclude certain sections of code based on specific conditions.
  • Used to shorten lengthy expression present in the program.

One of the major application of Macros in C was in the generic programming but it is not required in C++ as C++ have templates for generic programming.

Comment
Article Tags:
Article Tags: