我正在阅读 Qualcomm 的 hci_qcomm_init 工具的代码,我注意到这个
if
是以我以前从未见过的方式编写的:
if (bt_hci_qcomm_pfal_get_bdaddress((uint8*)(&run_time_params.bd_address[0])) == TRUE)
{
}
else
{
DEBUGMSG(ZONE_WARNING,TEXT("bt_hci_qcomm_init Failed to read BD Address from NV default to %02X:%02X:%02X:%02X:%02X:%02X"),
(int)default_bt_bd_addr[0],(int)default_bt_bd_addr[1],(int)default_bt_bd_addr[2],
(int)default_bt_bd_addr[3],(int)default_bt_bd_addr[4],(int)default_bt_bd_addr[5] );
// using default BT address
std_memmove((uint8*)(&run_time_params.bd_address[0]), (const uint8 *)(&(default_bt_bd_addr[0])),BT_QSOC_MAX_BD_ADDRESS_SIZE);
}
有什么理由让你写一个
if
,其中if
部分为空,所有动作都在else
中,还是他们只是在那里犯了一个错误?
我个人会将该函数的结果与
FALSE
进行比较(或在函数前添加 !
)并避免使用 else
。
谢谢。
为什么会这样写呢?
问题中没有足够的信息来明确确定作者的想法。可能性包括:
if ( test)… else…
的陈述,其中 test
自然是“真实”或肯定的,因为他们相信这更有利于人类的可读性和理解。if
语句的所有“then”部分处理正常工作条件,而“else”部分处理错误,并且这个特定的 if… else…
语句在正常情况下不需要任何进一步的代码,所以那个箱子是空的。if… else…
语句重写为仅 if…
语句的工作。