Preprocessor Directives
| SL.No. | Directive | Description |
|---|---|---|
| 1 | #define | Substitutes a preprocessor macro |
| 2 | #include | Inserts a particular header from another file |
| 3 | #undef | Undefines a preprocessor macro |
| 4 | #ifdef | Returns true if this macro is defined |
| 5 | #ifndef | Returns true if this macro is not defined |
| 6 | #if | Tests if a compile time condition is true |
| 7 | #else | The alternative for #if |
| 8 | #elif | #else and #if in one statement |
| 9 | #endif | Ends preprocessor conditional |
| 10 | #error | Prints error message on stderr |
| 11 | #pragma | Issues special commands to the compiler, using a standardized method |
The #define Directive
/* Fahrenheit to Celcius conversion table*/
#include<stdio.h>
#define LOWER 0
/* lower limit of temp. table (in Fahrenheit) */
#define UPPER 300
/* upper limit */
#define STEP 20
/* step size */
int main(void){
int fahr;
for (fahr = LOWER; fahr <= UPPER; fahr += STEP)
printf("%3d \t%6.1f\n", fahr, (5.0/9.0) * (fahr−32.0));
}//Area of circle using #define preprocessor
#include <stdio.h>
#define PI 3.14
#define AreaofCircle(r) (PI*r*r)
int main() {
float radius, area;
printf("Enter the radius: ");
scanf("%f", &radius);
area = AreaofCircle(radius);
printf("Area = %.2f", area);
return 0;
}Predefined Macros
| SL.No. | Macro | Description |
|---|---|---|
| 1 | __DATE__ | The current date as a string literal in “MM DD YYYY” format. |
| 2 | __TIME__ | The current time as a string literal in “HH:MM:SS” format. |
| 3 | __FILE__ | This contains the current filename as a string literal. |
| 4 | __LINE__ | This contains the current line number as a decimal constant. |
| 5 | __STDC__ | Defined as 1 when the complier with the ANSI standard. |
Example:
#include<stdio.h>
void main()
{
printf("Date: %s\n",__DATE__);
printf("Time: %s\n",__TIME__);
}Output:
Date: Oct 24 2020
Time: 22:40:32