小编Ste*_*ond的帖子

这是内联函数的有效用法吗?

假设我有这个代码(不要介意SecondsToMinutes和MinutesToHours是彼此的副本)

inline float SecondsToMinutes(float seconds)
{
    return seconds / 60.0;
}
inline float MinutesToHours(float minutes)
{
    return minutes / 60.0;
}
inline float HoursToDays(float minutes)
{
    return minutes / 24.0;
}
inline float SeconndsToHours(float seconds)
{
    return MinutesToHours(SecondsToMinutes(seconds));
}
inline float MinutesToDays(float minutes)
{
    return HoursToDays(MinutesToHours(minutes));
}
inline float SeconndsDays(float seconds)
{
    return MinutesToDays(SecondsToMinutes(seconds));
}
Run Code Online (Sandbox Code Playgroud)

这是内联的有效用法吗?是否有意义?这是好习惯吗?毕竟,如果我没记错的话,内联意味着函数调用被函数体替换,所以

return MinutesToDays(SecondsToMinutes(seconds))
Run Code Online (Sandbox Code Playgroud)

应该相当于

return seconds / 60.0 / 60.0 / 24.0
Run Code Online (Sandbox Code Playgroud)

对?

或者为此使用宏更好吗?

#define EXCHANGE_SEC_MIN(x) (x / 60.0)
#define EXCHANGE_MIN_H(x) (x / 60.0)
#define …
Run Code Online (Sandbox Code Playgroud)

c++ macros inline function

6
推荐指数
2
解决办法
327
查看次数

标签 统计

c++ ×1

function ×1

inline ×1

macros ×1