printf("%s\n", __FILE__); // test.c
printf("%s\n", __DATE__); // Aug 21 2019
printf("%s\n", __TIME__); // 01:22:18
printf("%d\n", __LINE__); // 16
printf("%d\n", __STDC__); // 1
// stringize
// OUTSIDE SCOPE: define macro
#define error_message(e) \
printf("Error: " #e "\n")
// INSIDE SCOPE: use macro
error_message("This is an error.");
// Error: This is an error.
// defined
// OUTSIDE SCOPE: define macro
#if !defined (MESSAGE)
#define MESSAGE "This is a message."
#endif
// INSIDE SCOPE: use macro
printf("%s\n", MESSAGE);
// This is a message.
// parameterized macros
// OUTSIDE SCOPE: define macro
#define square(x) ((x) * (x))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
printf("%d\n", square(2)); // 4
printf("%d\n", MAX(4,5)); // 5
Updated on May 27, 2023 Changelog