在编写程序的时候,尽量少用#define,多用typedef。(不绝对的,和程序本身有关,越是大型的程序,越要注意这个)
因为宏定义掌握的不好的话,很容易出现一些预想不到的错误。
比如说:
你写了一个 #define A x
然后再程序里 定义了int A,然后又定义了 int x;(这时你忘了,你已经有一个宏定义,其实int A展开后就是 int x,这样就是重复定义,编译器会报错,这还是好的,编译器会查出来,有些错误是编译器查也查不出来的)
而用typedef对你的程序的可移植性会大大提高。
比如说 你可以定义一个 typedef int INTEGER,这样在程序里INTEGER就代表了int类型,当你的程序要移植时(比如放在64位或者16位的机子上运行时)
那可能你的int类型都要改为long型,这时你就把原来定义的那句改为typedef long INTEGER就可以了,这样就大大增加了程序的可维护性,
所以说对于大型程序typedef还是很有用的,而宏定义却很危险。