#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处理的不仅仅是常量,而且包括语言结构……