C 什么是「;总功能;?

C 什么是「;总功能;?,c,C,在“C编程语言JPL机构编码标准”中,我发现规则15(第14页)下面有一句话: “这与使用总功能优于非总功能的原则一致。” 我以前没听过“总功能”。这是什么?你能给我举一些全函数的例子吗 下面是JPL文档的链接 这将在文档的下一句中解释: total函数设置为处理所有可能的输入值,而不是 仅指软件运行时预期的参数值 功能正常 我认为它最初是一个数学术语。total函数是一个对所有可能的参数值都有良好定义的行为的函数 非total函数的一个示例是strlen(),如果其参数是空指针、无效指针或指向

在“C编程语言JPL机构编码标准”中,我发现规则15(第14页)下面有一句话:

“这与使用总功能优于非总功能的原则一致。”

我以前没听过“总功能”。这是什么?你能给我举一些全函数的例子吗

下面是JPL文档的链接


这将在文档的下一句中解释:

total函数设置为处理所有可能的输入值,而不是 仅指软件运行时预期的参数值 功能正常

我认为它最初是一个数学术语。total函数是一个对所有可能的参数值都有良好定义的行为的函数

非total函数的一个示例是
strlen()
,如果其参数是空指针、无效指针或指向没有空
“\0”字符的数组的指针,则该函数具有未定义的行为。(至少在便携式C中,没有真正的方法使
strlen()
检测并处理所有可能的无效参数。)


在文档中使用的total函数要么为所有可能的输入返回有意义的结果,要么检测任何无效的输入并以某种明确定义的方式报告错误。

total函数是一个为每个可能的输入值都定义了一个定义值的函数。也就是说,JPL说,最好编写总是给出正确答案的函数,而不是那些只给出正确答案的函数,而不是那些在编写函数时人们脑海中所想的值的范围


但是,如果编写的函数不是total(其适用范围小于其输入类型的范围),则应添加检查,以确保在遇到无法提供正确输出的输入值时生成错误,不要继续使用无效状态。

可能会有所帮助。我相信下面这句话可以定义它:total函数设置为处理所有可能的输入值,而不仅仅是软件正常运行时预期的参数值。谢谢您的回复。我读了下一句话,但我不能清楚地理解它的意思。JPL文档真的使用“setup”作为动词吗?谢谢你的回复。现在我理解了总函数的含义。有关背景(数学术语)的信息也有助于理解。我也很欣赏这个例子。我敢打赌,他们现在肯定做了很多。谢谢你的回复。现在我能清楚地理解它的意思了。我发现我应该为安全编码创建一个完整的函数。也许这是一种哲学,但是添加检查(这会导致有意义的错误)不是一种使函数完整的方法吗?