【问题标题】:How to check return value of a function parameter before passing it to another function如何在将函数参数传递给另一个函数之前检查函数参数的返回值
【发布时间】:2015-11-18 06:27:08
【问题描述】:
wr_crc( rmgd.msg, sizeof( rmgd.msg ), &wr_idx, calc_crc_full( rmgd.msg, wr_idx ) ); 

这里我想在传递给函数之前检查calc_crc_full( rmgd.msg, wr_idx ) 的值

如果 ((wr_uint8(msg, sizeof(msg), &wr_idx, ROUTE) == SUCCESS) && (wr_uint8(msg, sizeof(msg), &wr_idx, (UINT8)lib_position_reverse()) == SUCCESS) && (wr_uint32(msg, sizeof(msg), &wr_idx, route_rev) == SUCCESS) && (wr_crc_ccitt(msg, sizeof(msg), &wr_idx, calc_crc_ccitt_full(msg, wr_idx)) == SUCCESS))

【问题讨论】:

  • 你是什么意思检查?打印?店铺?什么?
  • 投票结束是因为太琐碎/对其他人没有用处。我只是变老了,脾气暴躁,还是其他人认为学生应该问他们的教授这些基本问题? (假设 OP 是学生,因为刚刚过去 9 月。)如果不是学生,IDK,我认为编程教科书/教程会教授这样的超级基础。
  • 是我们还是谷歌搜索或询问 OPs 教授/老师?

标签: c function return-value


【解决方案1】:

所以使用中间变量:

whatever_crc_full_is_t crcVal = calc_crc_full( rmgd.msg, wr_idx );
if( crcVal != 0 ) {
    wr_crc( rmgd.msg, sizeof( rmgd.msg ), &wr_idx, crcVal ); 
}

【讨论】:

  • @Chauchan 您发布的 if 子句中没有函数调用 calc_crc_full() 。不清楚您要检查什么值。
  • @Ville-ValtteriTiittanen 请查看最后的函数调用 if ((wr_uint8(msg, sizeof(msg), &wr_idx, ROUTE) == SUCCESS) && (wr_uint8(msg, sizeof(msg), &wr_idx , (UINT8)lib_position_reverse()) == 成功) && (wr_uint32(msg, sizeof(msg), &wr_idx, route_rev) == 成功) && (wr_crc_ccitt(msg, sizeof(msg), &wr_idx, calc_crc_full(msg, wr_idx) ) == 成功))
  • @Chauhan 是的,这个答案适用于您发布的后一种情况。
猜你喜欢
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 2021-04-10
  • 2023-01-12
  • 2014-01-06
  • 2019-10-09
  • 2017-08-07
  • 1970-01-01
相关资源
最近更新 更多