示例如下,可以使用内联函数来优化掉额外条件检查:
inline int foo(int a, int b) {
#ifdef DEBUG
if (a > 100 || b < 0) {
printf("invalid input\n");
return -1;
}
#endif
// do something with a and b
return a + b;
}
int main() {
int result = foo(50, 20);
// use the result
return 0;
}
在未定义 DEBUG
宏的情况下,编译器会将 foo
函数的实现直接插入到 main
函数中,从而优化掉额外条件检查。这种方式不仅能够提升代码效率,还能够减小代码体积。如果需要调试程序,只需定义 DEBUG
宏即可将额外条件检查加入到代码中。