如果我的程序需要一个简单的函数,假设要确定两个数字的最大值,是否最好将其定义为:
#define getmax(a, b) ((a)>(b)?(a):(b))
或
int getmax(int a, int b)
{
return a>b?a:b;
}
我做了一个打印getmax(a, b)
的简单程序
#include<stdio.h>
#define getmax(a, b) ((a)>(b)?(a):(b))
int main()
{
int i, j;
for( i = 0; i < 100; i++)
for( j = 0; j < 100; j++)
printf("%d\n", getmax(i, j));
return 0;
}
和
#include<stdio.h>
int getmax(int a, int b)
{
return a>b?a:b;
}
int main()
{
int i, j;
for( i = 0; i < 100; i++)
for( j = 0; j < 100; j++)
printf("%d\n", getmax(i, j));
return 0;
}
我测试了这两个程序 10 次并计算了平均运行时间。第一个程序的平均值为 0.8880s,第二个程序的平均值为 0.8575。什么更好用,除了运行时还有其他区别吗?
我是一名优秀的程序员,十分优秀!