我有这个方法:
- (double) myMethod (double a, double b) {
return a * b;
}
此方法返回一个double。
我准备在#define语句中转换它,比如
#define myMethod(a,b) (a * b)
这个定义返回一个double吗?我想是这样,但如果我想让它返回浮动?
感谢。
答案 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) )
确保您获得双浮点操作。