代码之家  ›  专栏  ›  技术社区  ›  Tim unnamed eng

运行时限制和编译时限制的定义是什么?

  •  -2
  • Tim unnamed eng  · 技术社区  · 7 年前

    APUE

    其中许多已经硬编码到程序中,或者已经确定 使用特别技术。通过各种标准化工作 我们已经描述过,现在提供了更多的便携式方法来确定 这些神奇的数字和实现大大减少了 环境。

    1. 编译时间限制(例如,短整数的最大值是多少?)

    2. 运行时限制(例如,lename中有多少字节?)

    任何程序在编译时都可以包含的。但是 运行时限制要求进程 调用函数以获取限制值。

    为了进一步混淆事物, 如果特定的运行时间限制没有 头球。 但是,如果没有在头文件中加密,则 应用程序必须调用三个conf函数之一

    首先,在我看来,编译时限制被定义为那些可以在头中定义的限制,而运行时限制被定义为那些不能定义的限制。

    那么运行时限制和编译时限制的定义是什么?

    3 回复  |  直到 7 年前
        1
  •  2
  •   ShadowRanger    7 年前

    你原来的定义已经正确了。如果能够使用头中的精确限制,则意味着对于该系统,这是一个编译时间限制。它可能是其他系统的运行时限制,在这种情况下,头不会提供静态定义。

    或者,你可以想到任何一个函数作为运行时限制存在的东西;当然,它实际上是某些系统上的常量值,但是对于便携式代码,无论如何都需要使用该函数,所以它是一个运行时间限制,它恰好是检查某些系统的真正廉价(其中函数可以被定义为返回静态的)。价值)。

        2
  •  2
  •   Gem Taylor    7 年前

    完整路径名的运行时限制很可能取决于操作系统的版本。

    获得最佳行为的唯一方法是进行系统调用以确定当前限制,或者调整代码,以便在遇到较长的字符串时它能够处理这些字符串,并且在将太长的路径传递到较旧的系统时正确报告系统错误。

    在某种程度上,如果您使用具有动态字符串长度的高级语言,则与这些运行时限制隔离,但了解它们确实存在是有用的。

        3
  •  1
  •   0___________    7 年前

    @蒂姆没有。假设您的系统可能连接了许多文件设备。其中任何一个都可能有不同的限制。它只能在运行时作为编译时发现,您不知道将使用什么硬件。