对内信任,对外怀疑

本文探讨了在C编程中,对于内部数据的信任与对外部数据的怀疑的重要性。内部数据传递时,适当的信任可以减少不必要的检查,提高程序性能;而对外部数据,则需充分判断,避免潜在错误。文章还讨论了冗余判断可能带来的问题。
摘要由CSDN通过智能技术生成

问题

  • 在写C程序时,领导经常要求注意个人的代码质量,因此我经常看到别人的代码中出现:函数传参,代码中对指针参数进行非NULL判断,这是有必要的,但是有些情况,我有些疑惑,例如:全局结构体保存程序配置,函数调用时传递该结构体指针,每个被调用的函数都判断一下该结构体是否为NULL,为NULL则返回错误。

感想

  1. 对内要信任,对外要怀疑
  • 数据是从内部 传递的,在代码内部,不需要过多的判断 (信任不是无条件信任,看是否需要,例如变量是否会改变),不需要判断每个变量是否为空,这样性能会丢失(c 语言就没有判断边界),所以函数定义需要说明:哪个参数不能为空,或者需要在哪个范围内
  • 数据是外部传过来的,需要充分判断。
  • 对内信任的目的是减少内耗,加快程序性能。
  1. 冗余的判断,虽然保证了程序不会崩溃,但是如果没有对返回进行处理,也可能掩盖了异常情况,例如:将某个函数返回值传递给另外一个函数,如果该返回根本不可能为NULL,但是却返回了NULL,在另外一个函数中做了非NULL判断后,但是没处理返回值,就忽略了真实的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值