In this video tutorial lets see how to use preprocessor operator “defined” in C programming language.
Page Contents
defined preprocessor operator can only be used with #if and #elif directives.
If the Macro name passed to define is actually defined, then it returns true or else it’ll return false.
#if( defined(macro_name1) ) // Some Set of Code #elif( defined(macro_name2) ) // Some More Set of Code #endif
OR
#if defined(macro_name1) // Some Set of Code #elif defined(macro_name2) // Some More Set of Code #endif
#include<stdio.h>
#define PI 3.14159265358979323846
#define AREA
void area_circle(float r);
void circumference_circle(float r);
int main()
{
float r;
printf("Enter radius of Circle\n");
scanf("%f", &r);
#if defined(AREA)
area_circle(r);
#elif defined(CIRCUM)
circumference_circle(r);
#else
printf("Code To Be Implemented\n");
#endif // defined
return 0;
}
void area_circle(float r)
{
printf("Area of Circle is %f\n", (PI * r * r) );
}
void circumference_circle(float r)
{
printf("Circumference of Circle is %f\n", (2 * PI * r) );
}
Output:
Enter radius of Circle
5
Area of Circle is 78.539816
In above source code AREA macro template or macro name is defined. So defined(AREA) returns true in #if condition. Hence the code inside #if block gets compiled and executed.
#include<stdio.h>
#define PI 3.14159265358979323846
#define CIRCUM
void area_circle(float r);
void circumference_circle(float r);
int main()
{
float r;
printf("Enter radius of Circle\n");
scanf("%f", &r);
#if defined(AREA)
area_circle(r);
#elif defined(CIRCUM)
circumference_circle(r);
#else
printf("Code To Be Implemented\n");
#endif // defined
return 0;
}
void area_circle(float r)
{
printf("Area of Circle is %f\n", (PI * r * r) );
}
void circumference_circle(float r)
{
printf("Circumference of Circle is %f\n", (2 * PI * r) );
}
Output:
Enter radius of Circle
5
Circumference of Circle is 31.415927
Here macro name AREA is not defined, hence code inside #if gets skipped. Whereas macro CIRCUM is defined, so the code inside #elif gets compiled and executed.
If neither AREA and nor CIRCUM is defined, then code inside #else block gets compiled and executed.
For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List
For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert