没卵用的卡常实验#
想起有人说,三目运算符比if-else慢,
也有人说,加了inline其实会更慢
那么,来做个实验吧。
(好智障的实验我都不好意思放上来)
准备#
-
三种方式写的 “函数”。因为我太蒟了,所以用了最简单的
max#define max(a, b) ((a) > (b) ? (a) : (b))int max (int a, int b) { if (a > b) return a; else return b; }int max (int a, int b) { return ((a) > (b) ? (a) : (b)); }其中后两种分别测了有
inline和没inline -
主程序
采用没
srand()的rand()来产生数据,这样不仅是随机分布的,而且总的数据还一样int main (void) { for (int i = 1; i <= 100000000; ++i) { int x = rand(), y = rand(); int z = max(x, y); } return 0; } -
计算器
utools 真好用
过程#
本着科学的实验原则,每个测五遍,取平均值
结果#
从上到下依次是:define,if没inline,if有inline,三目没inline,三目有inline

结论#
define非常快,尽量用
三目运算符比if-else快
inline比没inline快
。。。。。。。。。。。。
好像也没多大区别