【问题标题】:Objective C Program [duplicate]目标C程序[重复]
【发布时间】:2017-07-24 22:19:00
【问题描述】:

有人可以向我解释以下代码吗?我对返回值和“静态内联”的含义感到困惑。

static inline CGFloat skRandf()
{
    return rand() / (CGFloat) RAND_MAX;
}

static inline CGFloat skRand(CGFloat low, CGfloat high)
{
    return skRandf() * (high - low) + low;
}

【问题讨论】:

  • 添加了 C 标签,因为这实际上是纯 C 并且没有任何特定于 Objective-C 的内容。

标签: objective-c c


【解决方案1】:

这两个函数都返回 CGFloat 类型,它是一个依赖于平台的类型,可以保存 32 位或 64 位浮点数。

static 是一个 C 关键字,可确保相关函数对其他 translation units 不可见。在许多情况下,这意味着定义static 函数的源文件之外的代码无法调用该函数。有关 static 在 C 中的工作原理的更多详细信息,请参阅 this question

inline 是一个 C 关键字,它建议(但不要求)编译器应该内联编译该函数;例如而不是进行调用,而是在调用站点替换函数的主体。 This Wikipedia article 更详细地介绍了 inline 所做的事情。

【讨论】:

    猜你喜欢
    • 2011-09-11
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2013-03-03
    • 1970-01-01
    • 2014-01-29
    相关资源
    最近更新 更多