#ifdef in C

The #ifdef preprocessor directive checks if macro is defined by #define. If yes, it executes the code otherwise #else code is executed, if present.

Syntax:

 
  1. #ifdef MACRO  
  2. //code  
  3. #endif  

Syntax with #else:

 
  • #ifdef MACRO  
  • //successful code  
  • #else  
  • //else code  
  • #endif  

C #ifdef example

Let’s see a simple example to use #ifdef preprocessor directive.

 
  • #include <stdio.h>  
  • #include <conio.h>  
  • #define NOINPUT  
  • void main() {  
  • int a=0;  
  • #ifdef NOINPUT  
  • a=2;  
  • #else  
  • printf(“Enter a:”);  
  • scanf(“%d”, &a);  
  • #endif         
  • printf(“Value of a: %d\n”, a);  
  • getch();  
  • }  

Output:

Value of a: 2

But, if you don’t define NOINPUT, it will ask user to enter a number.

 
  • #include <stdio.h>  
  • #include <conio.h>  
  • void main() {  
  • int a=0;  
  • #ifdef NOINPUT  
  • a=2;  
  • #else  
  • printf(“Enter a:”);  
  • scanf(“%d”, &a);  
  • #endif         
  •   
  • printf(“Value of a: %d\n”, a);  
  • getch();  
  • }  

Output:

Enter a:5
Value of a: 5

 

#ifdef in C

The #ifdef preprocessor directive checks if macro is defined by #define. If yes, it executes the code otherwise #else code is executed, if present.

Syntax:

 
  1. #ifdef MACRO  
  2. //code  
  3. #endif  

Syntax with #else:

 
  • #ifdef MACRO  
  • //successful code  
  • #else  
  • //else code  
  • #endif  

C #ifdef example

Let’s see a simple example to use #ifdef preprocessor directive.

 
  • #include <stdio.h>  
  • #include <conio.h>  
  • #define NOINPUT  
  • void main() {  
  • int a=0;  
  • #ifdef NOINPUT  
  • a=2;  
  • #else  
  • printf(“Enter a:”);  
  • scanf(“%d”, &a);  
  • #endif         
  • printf(“Value of a: %d\n”, a);  
  • getch();  
  • }  

Output:

Value of a: 2

But, if you don’t define NOINPUT, it will ask user to enter a number.

 
  • #include <stdio.h>  
  • #include <conio.h>  
  • void main() {  
  • int a=0;  
  • #ifdef NOINPUT  
  • a=2;  
  • #else  
  • printf(“Enter a:”);  
  • scanf(“%d”, &a);  
  • #endif         
  • printf(“Value of a: %d\n”, a);  
  • getch();  
  • }  

Output:

Enter a:5
Value of a: 5

 

C #ifndef

The #ifndef preprocessor directive checks if macro is not defined by #define. If yes, it executes the code otherwise #else code is executed, if present.

Syntax:

 
  1. #ifndef MACRO  
  2. //code  
  3. #endif  

Syntax with #else:

 
  1. #ifndef MACRO  
  2. //successful code  
  3. #else  
  4. //else code  
  5. #endif  

C #ifndef example

Let’s see a simple example to use #ifndef preprocessor directive.

 
  • #include <stdio.h>  
  • #include <conio.h>  
  • #define INPUT  
  • void main() {  
  • int a=0;  
  • #ifndef INPUT  
  • a=2;  
  • #else  
  • printf(“Enter a:”);  
  • scanf(“%d”, &a);  
  • #endif         
  • printf(“Value of a: %d\n”, a);  
  • getch();  
  • }  

Output:

Enter a:5
Value of a: 5

But, if you don’t define INPUT, it will execute the code of #ifndef.

 
  • #include <stdio.h>  
  • #include <conio.h>  
  • void main() {  
  • int a=0;  
  • #ifndef INPUT  
  • a=2;  
  • #else  
  • printf(“Enter a:”);  
  • scanf(“%d”, &a);  
  • #endif         
  • printf(“Value of a: %d\n”, a);  
  • getch();  
  • }  

Output:

Value of a: 2