#define in C++ (original) (raw)

Last Updated : 23 Jul, 2025

In C++, #define is a preprocessor directive used to define a macro. Macros 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 _finalvalue

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.

C++ `

// C++ Program to calculate the area of the circle with a // predefined macro #include using namespace std;

#define PI 3.1425

int main() { float radius = 5, area; cout << "Enter the radius of a circle: "; cin >> radius;

area = PI * (radius * radius);

cout << "\nArea = " << area;
cout << endl;

return 0;

}

`

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.

C++ `

// C++ Program for to illustrate how to use function like or // expression macros #include #include using namespace std;

// defining short expression of for loop #define forLoop(len) for (int i = 0; i < len; i++)

int main() { string arr[5] = { "Geeks", "for", "Geeks", "C++", "Tutorial" };

forLoop(5) { cout << arr[i] << "\n"; }
return 0;

}

`

Output

Geeks for Geeks C++ Tutorial

Example 3: Chain Macros

C++ `

// C++ Program to illustrate how to use chain like macros #include

// defining one macro that has value which in turn is // another macro #define ALL_USERS FB_USERS // macro linked to upper macro #define FB_USERS 100

using namespace std;

int main() {

cout << "ALL_USERS: " << ALL_USERS;

return 0;

}

`

Example 4: Multiline Macros

C++ `

// C++ program to illustrate how to use multiline macros #include

// defining a multiline string that will be joined when it // is used in the program #define SENTENCE "Welcome
to
GeeksforGeeks"

using namespace std;

int main() { cout << SENTENCE;

return 0;

}

`

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:

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.