In this video tutorial lets see how to use preprocessor operator “defined” in C programming language.
How Does ‘defined’ preprocessor operator work?
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.
Syntac of “defined”
- #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
Video Tutorial: C Preprocessor Operator: defined
Source Code: C Preprocessor Operator: defined
- #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