分类: C/C++
2013-05-20 10:17:23
leizisdu2013-05-28 22:36:50
caniggiagoal:你这么写是传统的做法。我写这个的目的是基于现在碰到的问题提出的,现在有两个版本合入到了一起,但是只有一个版本需要调用这个函数,而且是大量调用。如果按照传统的办法来的话,就需要在每次函数调用前面都写一个判断下是A版本还是B版本。看起来很是野蛮。
看来各有优缺点
回复 | 举报caniggiagoal2013-05-23 14:10:42
relipmoc:#ifdef A
void helloWorld()
{
printf("helloWorld");
}
#endif
...
#ifdef A
helloWorld();
#endif
个人觉得这种方法更好,原因:
1 在A没定义时不用定义helloWorld()函数,减少了程序编译后的尺寸。实际上#if...#endif主要目的就是这个,不然有if语句就够了。
2 更早发现错误。如果没定义helloWorld(),去调用了,编译时就会报错。而第2种方法把这种错误掩盖了,要到运行时才能暴露,代价更大。
你这么写是传统的做法。我写这个的目的是基于现在碰到的问题提出的,现在有两个版本合入到了一起,但是只有一个版本需要调用这个函数,而且是大量调用。如果按照传统的办法来的话,就需要在每次函数调用前面都写一个判断下是A版本还是B版本。看起来很是野蛮。
回复 | 举报