// #include <stdio.h>
void def()
{
#define PI 3.1415926
#define AREA(r) r * r * PI
}
double area(double r)
{
return AREA(r);
}
int main()
{
double r = area(5);
// printf("PI = %f\n", PI);
// printf("d = 5; a = %f\n", r);
return 0;
}
tips:这是一段合法的代码
5.强大的内置宏
宏
含义
示例
__FILE__
被编译的文件名
file.c
__LINE__
当前行号
25
__DATE__
编译的日期
Jan 31 2012
__TIME__
编译的时间
17:01:01
__STDC__
编译器是否遵循标准C规范
1
#include <stdio.h>
#include <malloc.h>
#define MALLOC(type, x) (type*)malloc(sizeof(type)*x)
#define FREE(p) (free(p), p=NULL)
#define LOG(s) printf("[%s] {%s:%d} %s \n", __DATE__, __FILE__, __LINE__, s)
#define FOREACH(i, m) for(i=0; i<m; i++)
#define BEGIN {
#define END }
int main()
{
int x = 0;
int* p = MALLOC(int, 5);
LOG("Begin to run main code...");
FOREACH(x, 5)
BEGIN
p[x] = x;
END
FOREACH(x, 5)
BEGIN
printf("%d\n", p[x]);
END
FREE(p);
LOG("End");
return 0;
}