【发布时间】:2011-12-07 02:50:45
【问题描述】:
我对代码的性能有疑问。 假设我在 C 中有一个结构:
typedef struct _CPoint
{
float x, y;
} CPoint;
还有一个我使用结构的函数。
float distance(CPoint p1, CPoint p2)
{
return sqrt(pow((p2.x-p1.x),2)+pow((p2.y-p1.y),2));
}
我想知道用#define 替换这个函数是否是一个聪明的主意,
#define distance(p1, p2)(sqrt(pow((p2.x-p1.x),2)+pow((p2.y-p1.y),2)));
我认为它会更快,因为不会有函数开销,我想知道是否应该对程序中的所有其他函数使用这种方法以提高性能。所以我的问题是:
我应该用#define 替换我的所有函数来提高我的代码的性能吗?
【问题讨论】:
-
请使用结尾而不是前导下划线:大多数使用前导下划线都违反了 ISO C 标准,并且大写字母后的下划线特别糟糕,因为这是新的 C 语言关键字使用的 (
_Bool,_Complex,_Generic,_Atomic, ...)
标签: c performance inline c-preprocessor ansi-c