c - 被调用函数是否应该始终检查 C 中的数组大小?

标签 c arrays coding-style

<分区>

这是一个关于编程风格的问题,而不是关于技术性的问题: 我的 C 函数是否应该始终需要数组长度的参数,尽管该函数不依赖于它?

所以要么像这样 void foo(int* a, int size) 要么像 void foo(int* a)

例如当函数只操作数组的前 128 位时,函数是否需要数组长度并首先检查数组的长度是否正确,或者我应该相信调用者他遵循文档并且只调用函数数组的正确大小?

我是 C 的新手,所以我担心可能会出现缓冲区溢出之类的问题。为什么一个比另一个更好的技术推理会很棒。谢谢!

最佳答案

我的规则是区分接口(interface)点和内部函数。接口(interface)函数需要偏执和健壮,但内部函数可以假设调用者知道他们在做什么,并且可以选择效率而不是健壮。

关于c - 被调用函数是否应该始终检查 C 中的数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36762326/

相关文章:

c - 如何正确计算两种颜色之间的插值?

java - 何时使用 List<Long> 而不是 long[]?

javascript - 如何使用Bloodhound建议引擎? (多属性对象在本地传递)

java - IntelliJ 中的自动格式化行

methods - 如何命名一个可能做或不做某事的方法?

javascript - 多行 var f = function() {/* Code */} 应该得到一个分号

c - WCOREDUMP(status) 似乎总是返回 true,即使该功能已关闭

c - 我如何知道读取程序集的循环中包含什么

c - 设置定时器问题

SQL 到 JSON - 将结果分组到 JSON 数组中