【发布时间】:2020-04-30 08:11:06
【问题描述】:
我多次听说过“运行时约束”这个术语。我一直在实际标准 ISO/IEC 9899:2018 (C18) 中寻找“运行时约束”一词,但我发现的只是:
来源:ISO/IEC 9899:2018 (C18),第 3.18 节:
3.18
1 运行时约束
调用库函数时对程序的要求。
我不明白,这句话要表达什么。哪个要求?我比以前明白了。
这里没有以任何方式描述“要求”本身。只是强调,调用库函数时引用的需求应该是存在的,而不是这个需求究竟是什么。
这里的“程序”到底是什么意思?
这是否意味着,运行时约束是对可执行文件的要求如何调用库函数?但是为什么可执行文件要调用库函数呢?我的观点是可执行文件只是机器代码,需要执行。
- 什么是 C 中的运行时约束?
【问题讨论】:
-
附件 K 中描述的可选边界检查接口记录了运行时约束。
-
运行时约束适用于程序的执行。如注 1 所述,运行时约束不需要在翻译时进行诊断。如注释 2 所述,附件 K 中的函数需要验证它们指定的运行时约束没有被违反。
标签: c function runtime terminology function-call