#define 用 法 集 锦用 法 集 锦 [[修 正 版修 正 版 ]]DefinitionDefinition[[定 义定 义 ]]:The#defineDirectiveYoucanuse the#definedirectiveto givea meaningfulname to aconstantin yourprogram
Thetwoformsof thesyntaxare:Syntax#defineidentifiertoken-stringopt#defineidentifier[(identifieropt,
,identifieropt)]token-stringoptUsageUsage[[用 法用 法 ]]:1
简单的 define定 义#defineMAXTIME1000一个简单的 MAXTIME就定 义 好了,它代表 1000,如果在程序里面写if(i(y)
(x):(y);这个定 义 就将返回两个数中较大的那个,看到了吗
因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了
可以作为一个简单的模板来使用 而已
但是这样做的话存在隐患,例子如下:#defineAdd(a,b)a+b;在一般使用 的时候是没有问题的,但是如果遇到如: c*Add(a,b)*d 的时候就会出现问题,代数式的本意是 a+b然后去和 c,d相乘,但是因为使用 了 define(它只是一个简单的替换),所以式子实际上变成了c*a+b*d另外举一个例子:#definepin(int*);pina,b;本意是 a 和 b都是 int 型指针,但是实际上变成 int*a,b;a 是 int 型指针,而 b是 int 型变量
这是应该使用 typedef来代替 define,这样a 和 b就都是 int 型指针了
所以我们在定 义 的时候,