iPhone - 如何强制#define返回双精度?

时间:2011-04-20 20:03:48

标签: iphone objective-c cocoa cocoa-touch inline

我有这个方法:

- (double) myMethod (double a, double b) {
  return a * b;
}

此方法返回一个double。

我准备在#define语句中转换它,比如

#define myMethod(a,b) (a * b)

这个定义返回一个double吗?我想是这样,但如果我想让它返回浮动?

感谢。

2 个答案:

答案 0 :(得分:10)

不要那样做。只需使用内联函数,例如

static inline double MyMethod (double a, double b)
{
    return a * b;
}

同样快,少了头痛。

答案 1 :(得分:4)

#define只是文本替换,如果您要写:

myMethod(1, 2)

它将扩展为:

(1 * 2)

这显然是一个整数。

你可以这样写:

#define myMethod(a,b) ( (double)(a) * (double)(b) )

确保您获得双浮点操作。