========= test.c ==========
#include <stdio.h>
#define ROOT "/tmp"#define FILENAME "haha"
#define __PATH__ ROOT "/ppp/hello" "/" FILENAME
#define my_printf(fmt,args...) printf(fmt,##args)
int main()
{
int a[]={10,23,11,19};
int *p=a;
int bbb;
bbb = *p++ + *++p;
printf("%d\n",bbb);
printf("path=%s \n",__PATH__);
#if defined HAVE_TEST
my_printf("This is a test!\n");
#endif
}
编译:gcc test.c -DHAVE_TEST
运行结果:
33 这个结果根据不同的编译器有不同的结果,比如gcc 加-O2参数,结果为46,原因嘛,自己去想,你会明白的。
path=/tmp/ppp/hello/haha
This is a test!