Prev Next
C Preprocessor directives:
- Before a C program is compiled in a compiler, source code is processed by a program called preprocessor. This process is called preprocessing.
……
- Commands used in preprocessor are called preprocessor directives and they begin with “#” symbol.
- Below is the list of preprocessor directives that C language offers.
| S.no | Preprocessor | Syntax | Description |
| 1 | Macro | #define | This macro defines constant value and can be any of the basic data types. |
| 2 | Header file inclusion | #include <file_name> | The source code of the file “file_name” is included in the main program at the specified place |
| 3 | Conditional compilation | #ifdef, #endif, #if, #else, #ifndef | Set of commands are included or excluded in source program before compilation with respect to the condition |
| 4 | Other directives | #undef, #pragma | #undef is used to undefine a defined macro variable. #Pragma is used to call a function before and after main function in a C program |
A program in C language involves into different processes. Below diagram will help you to understand all the processes that a C program comes across.

Example program for #define, #include preprocessors in C:
- #define – This macro defines constant value and can be any of the basic data types.
- #include <file_name> – The source code of the file “file_name” is included in the main C program where “#include <file_name>” is mentioned.
#include <stdio.h>
#define height 100
#define number 3.14
#define letter 'A'
#define letter_sequence "ABC"
#define backslash_char '?'
void main()
{
printf("value of height : %d n", height );
printf("value of number : %f n", number );
printf("value of letter : %c n", letter );
printf("value of letter_sequence : %s n", letter_sequence);
printf("value of backslash_char : %c n", backslash_char);
}
Output:
|
value of height : 100
value of number : 3.140000
value of letter : A
value of letter_sequence : ABC
value of backslash_char : ?
|
Example program for conditional compilation directives:
a) Example program for #ifdef, #else and #endif in C:
- “#ifdef” directive checks whether particular macro is defined or not. If it is defined, “If” clause statements are included in source file.
- Otherwise, “else” clause statements are included in source file for compilation and execution.
#include <stdio.h>
#define RAJU 100
int main()
{
#ifdef RAJU
printf("RAJU is defined. So, this line will be added in "
"this C filen");
#else
printf("RAJU is not definedn");
#endif
return 0;
}
Output:
|
RAJU is defined. So, this line will be added in this C file
|
b) Example program for #ifndef and #endif in C:
- #ifndef exactly acts as reverse as #ifdef directive. If particular macro is not defined, “If” clause statements are included in source file.
- Otherwise, else clause statements are included in source file for compilation and execution.
#include <stdio.h>
#define RAJU 100
int main()
{
#ifndef SELVA
{
printf("SELVA is not defined. So, now we are going to "
"define heren");
#define SELVA 300
}
#else
printf("SELVA is already defined in the program”);
#endif
return 0;
}
Output:
|
SELVA is not defined. So, now we are going to define here
|
c) Example program for #if, #else and #endif in C:
- “If” clause statement is included in source file if given condition is true.
- Otherwise, else clause statement is included in source file for compilation and execution.
#include <stdio.h>
#define a 100
int main()
{
#if (a==100)
printf("This line will be added in this C file since "
"a = 100n");
#else
printf("This line will be added in this C file since "
"a is not equal to 100n");
#endif
return 0;
}
Output:
|
This line will be added in this C file since a = 100
|
Example program for undef in C:
This directive undefines existing macro in the program.
#include <stdio.h>
#define height 100
void main()
{
printf("First defined value for height : %dn",height);
#undef height // undefining variable
#define height 600 // redefining the same for new value
printf("value of height after undef & redefine:%d",height);
}
Output:
|
First defined value for height : 100
value of height after undef & redefine : 600
|
Example program for pragma in C:
Pragma is used to call a function before and after main function in a C program.
#include <stdio.h>
void function1( );
void function2( );
#pragma startup function1
#pragma exit function2
int main( )
{
printf ( "n Now we are in main function" ) ;
return 0;
}
void function1( )
{
printf("nFunction1 is called before main function call");
}
void function2( )
{
printf ( "nFunction2 is called just before end of "
"main function" ) ;"
}
Output:
|
Function1 is called before main function call
Now we are in main function
Function2 is called just before end of main function
|
More on pragma directive in C:
| S.no |
Pragma command
|
description
|
| 1 | #Pragma startup <function_name_1> | This directive executes function named “function_name_1” before |
| 2 | #Pragma exit <function_name_2> | This directive executes function named “function_name_2” just before termination of the program. |
| 3 | #pragma warn – rvl | If function doesn’t return a value, then warnings are suppressed by this directive while compiling. |
| 4 | #pragma warn – par | If function doesn’t use passed function parameter , then warnings are suppressed |
| 5 | #pragma warn – rch | If a non reachable code is written inside a program, such warnings are suppressed by this directive. |
Prev Next
.