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
.