1 常见命名规则

比较著名的命名规则首推匈牙利命名法,

这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。

其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;

前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

例如:lpszStr, 表示指向一个以'\0'结尾的字符串(sz)的长指针(lp)变量。

骆驼(Camel)命名法近年来越来越流行,

在许多新的函数库和Java这样的平台下使用得当相多。

骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。

其中第一个单词首字母小写,余下的单词首字母大写。

例如:printEmployeePaychecks(),函数名中每一个逻辑断点都有一个大写字母来标记。

帕斯卡(Pascal)命名法与骆驼命名法类似。

只不过骆驼命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。

例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。

在C#中,以帕斯卡命名法和骆驼命名法居多。

事实上,很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用,

例如变量名采用骆驼命名法,而函数采用帕斯卡命名法。

另一种流行的命名规则称为下划线命名法。

下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。

本章所述的命名规则主要基于下划线命名法发展而来。

2 函数的命名

函数名使用下划线分割小写字母的方式命名:

设备名_操作名()

操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者

谓语+宾语/表语(此时设备名作为主语或者标明操作所属的模块) 等形式,如:

tic_init()

adc_is_busy()

uart_tx_char()

中断函数的命名直接使用 设备名_isr() 的形式命名,如:

timer2_isr()

3 变量的命名

变量的命名也采用下划线分割小写字母的方式命名。

命名应当准确,不引起歧义,且长度适中。如:

int length;

uint32 test_offset;

单字符的名字也是常用的,如i, j, k等,它们通常可用作函数内的局部变量。

tmp常用做临时变量名。

局部静态变量,应加s_词冠(表示static),如:

static int s_lastw;

全局变量(尤其是供外部访问的全局变量),应加g_词冠(表示global),如:

void (* g_capture_hook)(void);

4 常量及宏的命名

采用下划线分割大写字母的方式命名,一般应以设备名作为前缀,

防止模块间命名的重复。如:

#define TIMER0_MODE_RELOAD 2

#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

当然,看作接口的宏可以按照函数的命名方法命名,例如:

#define timer2_clear() (TF2 = 0)

#define timer0_is_expired() (TF0)

5 常用缩写词

原词 缩写

addition add 加

subtraction sub 减

multiplication mul 乘法

division div 除法

answer ans 响应、回答

array arr 数组、集合

average avg 平均

buffer buf或buff 缓冲区

capture cap或capt 捕获

check chk 检查

count cnt 计数器

column col 列

control ctrl 控制

decode dec 解码、译码

define def 定义

delete del 删除

destination dst或dest 目的

display disp 显示

encode enc 编码

environment env 环境

error err 错误

float flt 浮动、浮点

frequency freq 频率

header hdr 开始、开头

index idx 索引、指示、

image img 影像、镜像

increment inc 增加、增量

initalize init 初始化

iteration itr 循环、迭代

length len 长度

memory mem 内存

middle mid 中值

make mk 制造、形成

message msg 消息

number num 数量、编号

operand opnd 操作数

optimization opt 最优

operator optr 操作

packet pkt 消息包

positon pos 位置

previous pre或prev 以前的

pointer ptr 指针

record rcd 记录

receive recv 收到、接收

result res 结果

return ret 返回

source src 源头

stack stk 栈

string str 字符串

table tab 表

temporary tmp或temp 临时

total tot 全部的

time stamp ts 时间戳

value val 值

c语言中一般命名方式,C语言常见命名规则相关推荐

  1. verilog语言中的@什么意思 verilog语言中的@什么意思

    verilog语言中的@什么意思 verilog语言中的@什么意思 2012-05-27 22:47 在英语中@ 读at,也就是在--的时候,这个小学应该学过,对吧.verilog中@ 的含义就是触发 ...

  2. c加加属于面向对象的程序设计语言吗,下列语言中属于面向对象的程序设计语言是______。A、Visual BasicB、PASCALC、CD、FORTRAN...

    下列语言中属于面向对象的程序设计语言是______.A.Visual BasicB.PASCALC.CD.FORTRAN 更多相关问题 经纬仪如存在指标差,将使观测结果出现( ). 德治的约束作用主要 ...

  3. linux c变量命名规则,C语言中变量名及函数名的命名规则与驼峰命名法

    在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...

  4. c语言中函数名可不可以由用户命名,C语言中变量名及函数名的命名规则与驼峰命名法...

    在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...

  5. c语言中字符串型文件名,C语言中变量名的命名规则

    1.严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行.要求相匹配的大括号在同一列,对继行则要求再缩进4格.例如: 2.提示信息字符串的位置 在程序 ...

  6. c语言驼峰命名法作用,C语言中变量名及函数名的命名规则与驼峰命名法

    在程序设计中,变量名.函数名.数组名等统称为标识 符.简单地说,标识符就是一个名字.除库函数的函数名由系统定义外,其余都由用户自定义.C语言规定,标识符只能由字母(a-z,A-Z).数字 (0-9). ...

  7. C语言中文件读写方式r 的作用,C语言文件读写操作主要函数及其用例

    C语言把磁盘文件看成是字符(或字节)的序列,按照存储信息的形式来说,文件主要是有文本文件和二进制文件.文本文件由一个个字符组成,每个字节存放一个ASCII码制,代表一个字符.二进制文件把内存中的数据按 ...

  8. 【chatGPT】01 数组、二维数组在不同语言中的存储方式

    问:数组在C++中的存储方式是什么?Java呢?Python呢?可以举例吗? C++ 在C++中,数组是连续分配的内存单元,具有相同的类型和大小. C++会将数组的第一个元素存储在指向数组的指针中,因 ...

  9. c语言中变量的大小,C语言变量定义

    C语言变量定义 程序设计就是让计算机按照一定的指令来进行工作,可以说数据的处理是程序设计的主要任务.那么数据是怎么加入到计算机的内存中呢?下面是小编分享的C语言变量定义,欢迎大家阅读!更多相关信息请关 ...

最新文章

  1. Java面试通关要点汇总集之核心篇参考答案
  2. python scale 窗口部件 使用_Tkinter介绍及教学-Python教学【StudyQuant-Python量化投资课堂】...
  3. ListView自动滚到底部
  4. python菜鸟教程m-Python map() 函数
  5. php 使用 curl 报错,PHP CURL post数据报错 failed creating formpost data
  6. 关于异步IO与同步IO的写操作区别
  7. 12 c for. oracle rac,【案例】Oracle RAC FOR AIX搭建执行root.sh时两次报错的解决办法
  8. Hibernate 拦截器 Hibernate 监听器
  9. 案例 实现文件读写器 c# 1614523907
  10. 敏捷开发团队管理系列之一:序言与出发点
  11. 详解解决CAS机制中ABA问题的AtomicStampedReference
  12. CTC loss 理解
  13. 心率检测仪的设计与实现:stm32视频教程分享
  14. NFT和游戏化的革命-通过 Play Earn 尝试世界上第一个国际象棋游戏
  15. 火线精英手游服务器维护,4399火线精英7月4日23:00全区停机维护公告
  16. JavaScript 的物理引擎对比
  17. matlab图源代码,[转载]常用的一些图像处理Matlab源代码
  18. 02 数据定义语言DDL
  19. 为什么资源管理对现代企业很重要?
  20. 经典快速制作套打证书模板(doc)大全

热门文章

  1. 游戏脚本用什么语言写_为什么要写分镜头脚本?
  2. T解 湖南师大附中集训 模拟考试1
  3. 用户画像之概念知识!
  4. 自定义View之指南针(反编译别人的代码实现)
  5. 基本IO接口技术——微机第七章笔记
  6. 足球一代又一代得青春
  7. Git push基础用法
  8. css里的deg,CSS角度单位:deg、grad、rad、turn
  9. PTA 一帮一 (in Python)
  10. webm格式如何转换成mp4格式?