嵌入式代码编写规范

  1. 头文件函数声明增加extern
c 复制代码
extern void DelyMS(unsigned int ms);

因为不同编译器可能会出问题,keil5不用加extern,但最好规范

  1. if(0 != nor_init())为什么不写成if( nor_init() != 0)

在C语言中,if语句的条件表达式可以是任何产生布尔结果的表达式。在大多数情况下,非零值被视为true,而零值被视为false。因此,if(0 != nor_init())和if(nor_init() != 0)在逻辑上是等价的,因为它们都会检查nor_init()函数的返回值是否不等于零。

以下是两种写法的逻辑解释:

if(0 != nor_init()):这种写法首先将0与nor_init()的返回值进行比较。如果nor_init()返回非零值,则条件为true,执行if语句块内的代码。

if(nor_init() != 0):这种写法直接将nor_init()的返回值与0进行比较。如果nor_init()返回非零值,则条件同样为true,执行if语句块内的代码。

从技术角度来看,两者都可以正常工作,并且没有性能差异。选择哪种风格取决于个人或团队的编码风格指南和偏好。以下是一些可能影响选择的原因:

可读性:有些人可能认为if(nor_init() != 0)的顺序更自然,因为它遵循了从左到右的阅读顺序,即先调用函数,然后比较结果。

习惯:有些程序员习惯于将常量放在比较的左侧,尤其是在比较指针和整数时,这种习惯可以帮助避免不小心将误写为=。
错误预防:将0放在比较的左侧可以防止你错误地将写成单个=,因为0 = nor_init()在C语言中是非法的,编译器会报错。

最终,两种写法都是可接受的,你应该根据你的代码风格指南或个人偏好来选择。如果你在一个团队中工作,最好遵循团队的一致风格。

未完待续

相关推荐
starzy19902 小时前
深入理解Scala隐式类:扩展方法机制
开发语言·人工智能·scala
M--Y3 小时前
LangGraph 工作流模式
开发语言·javascript·python·langchain·大模型·llm·langgraph
吴可可1234 小时前
WScript Shell操作注册表详解
开发语言
纪念 2295 小时前
C++ 算法基础 (差分)
开发语言·c++·算法
码农小河669 小时前
基于PHP的电商后台蜜罐系统
开发语言·php
starzy19909 小时前
深入理解Scala柯里化函数:函数链式变换
开发语言·scala
ShineWinsu10 小时前
对于Qt:QTreeWidget常见属性以及QTreeWidgetItem类的解析
开发语言·c++·qt·gui·客户端·多叉树·qtreewidget
希和202710 小时前
江科大 51 单片机课程笔记:DS1302 实时时钟 + LCD1602 可调电子钟(小白逐行讲解)
笔记·单片机·嵌入式硬件
女神下凡10 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
落羽的落羽10 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习