写C语言程序需要给函数、变量命名,也就是标识符,不同编程语言和不同程序,命名方式和规范各不相同,每种语言都有自己的习惯命名方法。截至目前,编程的命名方法主要有四种,这四种方法没有优劣之分,主要看个人爱好和编程规范要求,因此大家可以选择一种作为自己的风格。
对于简单变量,可以使用单个字母或单个单词简写命名;对于复杂的变量和函数需要使用多个单词时,充分利用以下的命名法。变量命名其实对于计算机来说,可以是任意的,但是命名对于程序员来说,可以增加程序代码的可读性,因此十分重要。
1.下划线命名法
使用下划线分割多个单词,这种方式是C语言中常用的,在C语言类程序中经常使用使用,好处是字母全部小写,看起简洁。
例如:
int books_num = 100; // 书本数量
void add_book(…); // 增加书本函数
void print_books(…); // 显示所有书本信息
2.小驼峰式命名法
第一个单词首字母小写,后面的每个单词的首字母大写。
例如:
int booksNum = 100;
void addBook();
void printBooks();
3.大驼峰式命名法
这种又称为帕斯卡命名法(Pascal命名法),每个单词的首字母都大写。
例如:
int BooksNum = 100;
char *BookName;
void AddBook();
void PrintBooks();
4.匈牙利命名法
起源于Windows环境编程中,据说是一名匈牙利的程序员发明,该命名法稍微复杂些,名字以小写字母作为前缀,该前缀可以表示变量的类型、作用域等信息。一般的格式是 属性+类型+描述,属性可以是小写字母加上下划线,看到变量名就可以知道变量的类型(整型、浮点型、指针类型等),知道其作用域(全局变量还是局部变量),知道其作用。
例如:
int iBooksNum = 100;
其中,i缩写表示整型
static char *s_psBookName;
其中,s_表示静态变量,p表示指针类型,s表示字符串
总结:目前最常用的命名法是驼峰式命名法,基本在所有的现代高级语言中(例如Java,C#等)都有使用。第4种匈牙利命名法比较复杂,早期的windows编程中使用较多,现代IDE有类型提示,基本不需要如此复杂的命名,不建议初学者使用。
C语言学习来说,可以使用通用的驼峰式命名法,但是考虑到C编程的传统,也可以使用下划线命名法,这在C语言相关的项目中仍然很常见,个人感觉更加简洁,不要大小写字母混杂。你觉得呢?~~
其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。
iOS OC中copy和mutableCopy的使用区别// 浅复制- (IBAction)shallowCopyAction:(id)sender { NSArray *array0 = @[@"A", @"B", @"C"]; NSArray *array1 = array0; NSArray *array2 = [array0 copy]; NSLog(@..._oc copy 和mu ta
手机归属地数据文件格式是自己定义的,使用本程序将文本格式的手机号数据导入为二进制文件以节约存储空间和提高查询速度,数据文件命名为MpData.dat,然后可以使用本程序查询手机号段的归属地注: Mps.cpp是主程序, Global.cpp是一些工具函数和类, Release/MpData.txt是文本格式的手机归属地数据。 程序的使用方法请参阅Mps.cpp中printHelp()函数的代码..._c语言归属地查询代码
导读 伴随移动互联网用户爆炸式的增长,网络业务、应用场景的多样化,加之共建共享的全面推进,网络制式、用户归属、终端类型变得更加繁杂。传统的优化手段已无法快速适应网络问题的复杂多变。如何将大数据技术运用于网络优化工作中,将网优经验数学化,形成由IT引擎驱动的智能分析系统,精准定位并解决问题,成为优化工作的新方向。本次分享主题是《特定场景下的网络质量评估与预警方法介绍》,主要内容分为4部分:1. 相关背景介绍2. 评估——基于熵权法的网络综合评估3. 预警——小区扩容优先级推荐4..._场景级的网络问题评估
#20165205 实验一 Java开发环境的熟悉##一、实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205指导教师:娄嘉鹏 实验日期:2018年4月2日实验时间:13:45 - 15:25 实验序号:一实验名称:Java开发环境的熟悉实验目的与要求: 1、完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析。 2、实验报告中统计自己的P..._java运行环境实验报告
基于孙鑫老师讲授的MFC第8讲的视频对属性页和向导的创建而做的一点笔记
颜博马蜂窝数仓研发总监现任马蜂窝数据仓库团队负责人,曾供职于京东、IBM、亚信等公司。数据行业老兵一名,历经传统数据仓库、大数据平台到数据中台的发展。大家好,今天分享的议题主要包括几大内...
原标题:访谈 | 信息院优秀毕业生经验分享信息学院优秀毕业生经验分享又到了一年的毕业季,学姐学长们经过了四年充实的大学生活,开始迈向新的征程。他们的现在正是我们的未来,但不同的是他们已经向着明确的目标进发,而我们很多人还处于迷茫的状态。今天,我们采访了两位优秀的毕业生,听他们分享了一些大学学习以及生活的经验。希望能给大家带来经验的同时,也能让同学们更加明确自己的未来。第一位是13级计算机专业的李丹..._计算机专业就业访谈
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移
#ifndef __TIMERTASK_H_#define __TIMERTASK_H_/* 定时器任务基类 */#include "asr_taskinterface.h"#include "comontype.h"class BaseTimerTask{public: BaseTimerTask():m_uiTvSec(0),m_uiTvUsec(0){} ..._c++ 实现简单任务调度 select使用
一堆介绍堆主要划分为新生代和老年代;详细划分为Eden,from survivor ,to survivor;二jdk1.8-jvm内存模型要看详细的介绍情看的介绍请看作者发布的"jvm运行时数据区一文",jdk1.8中已经取代了方法区永久带的概念转而的是在方法区中的元空间,有人也称作是直接内存。二垃圾收集器示意图图中有直线连接的说明是能够相互配合使用的垃圾收集器。三垃圾收..._javm
九宫格拼图游戏设计文档一、综合设计目的、条件、任务和内容要求:1.设计目的《Windows程序设计》是计算机科学与技术专业本科生的一门学科基础课程。Windows程序以图形用户界面(GUI)给用户提供各种功能,在各行各业有着广泛的应用。基于MFC的Windows程序设计是进行Win32程序设计的一种主流方法。本课程主要介绍Windows程序设计的思想和方法,以及MFC的常见应用。本课程综合应用算法..._九格拼图项目描述怎么写
1、图像增强 直方图均衡化 处理C 语言实现#ifndef BMP_H_3_INCLUDED#define BMP_H_3_INCLUDED typedef unsigned short WORD;typedef unsigned long DWORD;typedef long LONG;typedef unsigned char BYTE;typedef struct tagBITMAPFILE..._图象增强c语言