给函数和变量取一个有意义的名字

为什么要给函数和变量取一个有意义的名字?

1. 代码写出来是给以后的自己和别人看的,易于理解的变量名可以更好的阅读,并且可以看出编码者的个人修养和编程功底;

2. 好的变量名字有利于提高自己英语水平(词汇量、表达能力),英语水平提高了,对代码中的注释也是很有帮助的;

3.  可以培养自己咬文嚼字的能力,选用什么样的一个词来表达其在代码中最为贴近的含义;

如何给函数和变量取一个有意义的名字?

1. 阅读优秀的代码,体会别人是怎么取变量名的,并不断积累,好记性不如烂笔头;

2. 阅读相关书籍,《代码大全》、《代码整洁之道》;

3. 自己在写的时候,多推敲,可以借助英语词典,选取最为准确表达意思的词;

4. 一有时间就去回顾自己的笔记,加深记忆(应遵循大脑的记忆曲线);

函数命名原则:

文件名+动宾结构(filename_dosomething() 函数名前加上文件名的好处是以防止函数未进行static声明时,有可能重复定义;单词首字母最好大写,这样醒目一些,避免多个单词连在一起出现混淆)。 常有单词有:

reset 复位某一个外设,比如复位phy芯片 _ResetPhy8201f

init      exit

_InitConfig _InitReg  Chip_Init Chip_Exit

start/run   stop

开始或停止某一状态,比如开启或关闭看门狗,和begin(起始) end区别

execute

_ExecuteCmd

reg      unreg

_RegOps:注册操作函数,这个一般用于连接设备驱动层次关系(通用代码处理modules层和具体的操作方法实现chips层,连接两者的桥梁是模块配置指针,这样有利于代码的移植性)。

_RegCmd:注册Proc调试接口函数,xxx_RegCmd("xxx", Xxx_ExecuteCmd, XxxCmdUsage);

get    set

_SetXxxState _SetXxxParam _SetXxxRunParam _GetXxxPos _SetRegBits _SetGpioDir_SetGpioLevel _SetXxxVal _GetCapacity

write   read

_ReadReg  _ReadRegCache(一个是读寄存器,另一个是读保存在数组当中的寄存器值)_WriteReg

dowrite doread被write read调用

dump  _DumpReg  _DumpInfo

open  close

input  output

probe   Remove

create   delete

enable   disable使能片选  _EnableCs、读写使能

calc 计算(calculate) 计算偏差

_CalcOffset  _CalcElapse _CalcLength

reverse  forward

1. 翻转,例如SPI传输中,是否需要进行位翻转,Reverse_8/16/32bits

2. 前进和倒退

backto退回到某个位置,_BackToZero,退回到原点

parse

_ParseHeader 解析一个字符串中的特定字符

show

_ShowInfo _ShowState

变量命名原则:

变量命名应遵循准确表达其在代码中所表达的含义。驱动程序中常用的单词有:

1. 寄存器参数结构体T_RegParam:addr    data    num

2. 参数配置结构体T_XxxConfig:

  1)外设和主控制器相连的一些管脚命名,CsPinIdRstPinId

  2)芯片类型Type 页大小PageSize 页总数 PageNum 容量 Capacity 地址标致 i2cFlag 读写超时TimeOut

3. 设备对象结构体T_XxxDev:几个大部分。

  1) 外设驱动的状态,SpiFlag I2cFlag spi i2c是否probe成功

  2) 寄存器数组 RegCache

     参数配置结构体T_XxxConfig

  3) 和modules交互的相关结构体

  4) 内核相关驱动机制

    A. 等待队列Wq等待队列判断条件Condition

    B. 内核定时器Timer

    C. 互斥量Mutex

    D. 内核线程Task

    E. 内核总线通讯机制相关,设备指针这块主要是用来进行总线通信使用,i2c/ spi   SpiDev Client  Adapter

时间: 2024-10-17 01:56:18

给函数和变量取一个有意义的名字的相关文章

详解JMeter函数和变量(转载)

详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var3)} 其中,__functionName匹配被调用的函数名称.用圆括号包含函数的形参,例如${__time(YMD)},不同函数要求的参数也不同.有些JMeter函数不要求参数,则可以不使用圆括号,例如${__threadNum}. 如果一个函数的参数中包含逗号,那么必须对逗号进行转义(使用"\&

详解JMeter函数和变量

详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var3)} 其中,__functionName匹配被调用的函数名称.用圆括号包含函数的形参,例如${__time(YMD)},不同函数要求的参数也不同.有些JMeter函数不要求参数,则可以不使用圆括号,例如${__threadNum}. 如果一个函数的参数中包含逗号,那么必须对逗号进行转义(使用"\&

辨析函数指针变量和指针型函数

在上一篇随笔(顺序表基本操作算法的代码实现)中,LocateElem()函数的第三个形参的形式是: Status (*compare)(Elemtype e,Elemtype temp); 这是一个函数指针变量,借此机会记录一下函数指针变量和指针型函数的区别. 一.写法上的区别 函数指针变量 指针型函数 int (*function)(int i); int  *function(int i){} 上面是一个例子,可看到函数指针变量只是在:*function处比指针型函数多了一对小括号,下面是两

Python中的函数与变量

本节内容 函数的定义方法 函数功能 函数的返回值 函数的形参与实参 全局变量与局部变量 递归 函数的作用域 匿名函数lambda 函数式编程 常用内置函数 其他内置函数 函数 函数的定义方法 函数就相当于一个文件,这个文件有他特定的功能可以减少代码的重写 1 def 函数名 (参数): 2 "函数的注释" 3 函数体 4 return x 若命名了相同的函数名,则调用函数时下面的函数会覆盖掉上面的函数 函数的功能 1.代码重用 2.保持一致性,易维护 3.可扩展性 函数的返回值 1.返

一个函数要使用另一个函数中的数据

一个函数要使用另一个函数中的数据 1.把局部数据return出去,变成全局的数据 let fn1 = function(){ let num = 10; return num; } let num = fn1(); let fn2 = function(){ console.log('fn2'num); } fn2(); 2.通过调用函数时传参:让"函数的调用"跟局部的数据在同一个作用域 let fn2 = function(num){ console.log('fn2',num);

解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据

我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据.好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的动态,而不关心几个月甚至几年前消息,所以后端返回给客户端的数据是不会一次性传递全部内容的(不仅耗费流量,而且还给服务器带来巨大压力). 举个例就说MySQL,它已经给我们提供了相应的语句来支持这一功能,那就是limit关键字.比如我要拉取一个消息表中用户id为1的前10条最新数据,SQL语句如下: s

函数(局部变量与全局变量,函数即变量理论,递归函数)

一.局部变量和全局变量 函数内部:局部变量优先全局变量 局部变量仅限于函数内部使用 通常:全局变量变量名大写 局部变量变量名小写1.global关键字 在函数内部只能读全局变量,利用global进行修改name='fjy'def change_name(): global name name='bcs' print(name)##打印结果 fjy错误用法:global在变量名后面name = ["雪花","寒冰"]def snow(): name = "雾

Axure函数与变量

AxureRP里面的变量是一个非常有个性和使用价值的功能,有了变量之后,很多需要复杂条件判断或者需要传递参数的功能逻辑就可以设计实现了,大大丰富了原型演示的可实现效果.在AxureRP 6.0版本之前,只能使用定义的全局变量,6.0版本增加了一些AxureRP自带的变量,并且增加了函数运算功能,在前面已经有写过两篇教程<AxureRP教程–使用变量>和<AxureRP教程–变量运算>,分别介绍了全局变量的使用和6.0版本之前如何进行变量的运算,不了解的朋友可以先去看看这两篇文章.

函数、变量

静态与动态 HML  静态(数据静态) ASP/ASP.NET动态(数据动态) C#编程: (一)项目结构 .cs——源文件(程序代码) .csproj——项目文件(管理文件项) .sln——解决方案文件(管理项目) .config——配置文件 函数的四要素:名称,输入,输出,加工 主函数 static void Main(string[] args) { } 输入语句 string s = Console.ReadLine(); 输出语句 Consle Writeline(“要输出的内容”)