Preprocessor
#define PI 3.14

//#undef PI
#ifndef PI
	#error "Not define PI ..." // compile error
#endif

#define DISP(a) printf("Parameter is " #a "\n");
#define SQUARE(x) ((x)*(x))

#include <stdio.h>

int main()
{
	printf("Date: %s\n", __DATE__);
	printf("Time: %s\n", __TIME__);
	printf("File: %s\n", __FILE__);
	printf("Line: %d\n", __LINE__);
	printf("STDC: %d\n", __STDC__); // defined as 1 when the compiler complies with the ANSI standard

	DISP(TEMP); // Parameter is TEMP

	printf("Square of %d is: %d\n", 10, SQUARE(10));

	return 0;
}