#define的继续讨论

正如上次所说的,#define可以定义语言结构,例如:

#include <stdio.h>

#define Dear(x)  void main(x) {
#define she      int argc, int *argv[]
#define I        int i;
#define love     for(i=0;i<99;i++)
#define you      printf("I love you!\n");
#define by       ;
#define name      }

Dear(she) 
	I love you
by name

可以把一段原来很普通的代码变得“优雅”。当然,C语言在宏命令处理方面肯定没有其它宏命令处理强,而且也容易出错。

正如代码所说的,可以定义没有“main()”的代码。

关于#define预处理的讨论

以前看过一本C++的书说常量的定义最好不要用#define而用const,以前总不太明白为什么要新增一种常量类型const来定义。C语言的常规方法#define不是很好吗?

然而,事实上,#define处理的不仅仅是常量,而且包括语言结构……