C语言中变量名及函数名的命名规则与驼峰命名法
一、C语言变量名的命名规则:(可以字母,数字,下划线混合使用)
1. 只能以字母或下划线开始;
2. 不能以数字开始;
3. 一般小写;
4. 关键字不允许用(eg:int float=2//error float 为保留字不允许用);
二、函数名的命名规则
1.见名知意;
2.自定义函数函数名首字母大写(库函数里的函数名都是以小写字母定义,为了区分库函数和自定义函数,避免冲突)。
三、宏定义里面的变量 全大写
eg:
#define SIZE 100(后面函数所有出现的SIZE全用100代替,它在所有函数执行前先执行)
在程序设计中,变量名、函数名、数组名等统称为标识 符。简单地说,标识符就是一个名字。除库函数的函数名由系统定义外,其余都由用户自定义。C语言规定,标识符只能由字母(a~z,A~Z)、数字 (0~9)、下划线(_)组成,并且标识符的第一个字符必须是字母或下划线,不能以数字开头。C语言不限制标识符的长度,但它受各种C语言编译器的限制, 同时也受到具体机器的限制。例如,在某编译器中规定标识符前8位有效,当两个标识符前8位相同时,则被认为是同一个标识符。建议变量名的长度最好不要超过 8个字符。
以下标识符是合法的:
i、a、count、 number_of_book、BOOK_NUMBER、sum100、_total。
以下标识符是非法的。
3com:以数字开头。
char:char是C语言的一个数据类型,是 保留字,不能作为标识符,其他的如int、float等类似。
a*b:*不能作为标识符的字符。
number of book:标识符中不能有空格。
注意:C语言是区分大小写的,如Count与count被认为是两个不同的标识符。
2.7.2 关键字
关键字是由C语言规定的具有特定意义的字符串,通常 也称为保留字。用户定义的标识符不应与关键字相同。C语言的关键字分为以下几类。
(1)类型说明符
用于定义、说明变量、函数或其他数据结构的类型,如 int,double等。
(2)语句定义符
用于表示一个语句的功能。例如,后面章节将会介绍的 “if else”就是条件语句的语句定义符。
(3)预处理命令字
用于表示一个预处理命令,如前面用到的 include。
2.7.3 命名规范
如果只是编写一些小程序,程序只有几十或几百行,编 程风格可能并不重要。然而,如果是和许多人一起进行一定规模的项目开发,或者希望过一段时间之后,还能够快速而准确地理解自己的程序,就必须养成良好的编 程习惯。良好的编程风格可以增加程序代码的可读性。编程风格最能体现一个程序员的综合素质。变量的命名规范是编程风格的一项重要内容。
变量的命名规范有很多种。在Windows下开发软 件,许多人采用匈牙利命名法,而在Linux环境下,并不建议使用这种方法。
Linux下建议的命名规则如下。
(1)变量名必须有一定的意义,并且意义准确。例如 有一个变量用于保存图书的数目,可以命名为number_of_book或者num_of_book。不建议使用i,因为它没有意义。也不建议使用 number或book,因为意义不准确。
(2)不建议大小写混用。如定义一个计数变 量,int nCount;这在Windows中是一个很好的变量名,其中nCount的首字母n用来说明这个变量的类型是int。但在Linux下不建议大小写混合 使用,一般标识符只由小写字母,数字和下划线构成。
(3)在失去意义的情况下,尽量使用较短的变量名。 例如有一个变量,用于暂时存储一个计数值,把变量命名为tmp_count显然要比this_is_a_temperary_counter好。
(4)不采用匈牙利命名法表示变量的类型。如int nCount;n用于说明变量的类型,在Linux中不建议这样命名变量。
(5)函数名应该以动词开头,因为函数是一组具有特 定功能的语句块。比如一个函数,它用于取得外部输入的数值,则可以命名为get_input_number。
(6)尽量避免使用全局变量。全局变量在后面的章节 中会介绍。
变量的命名规范
1、起名要有意义
2、只能以英文字母、下划线( _ )、美元符号( $ )开头。后面可以接数字、英文字母、下划线和美元符号( $ )(可以使用中文,但不推荐使用)
3、不能是C语言中的关键字
C语言中的关键字
关键字就是已被C语言本身使用,不能作其它用途使用的字。
例如关键字不能用作变量名、函数名等,C语言中一共有32个关键字
auto register unsigned if while static
double int struct break else long switch case enum typedef char extern return union const float short
continue for signed void default goto sizeof volatile do
在Xcode中如果显示为淡紫色的都是关键字(没有更改设置的情况下)。
标示符命名规范
1、起的名字要有意义
如:避免使用a、b、c等单个字母名字。或者避免使用xsffsdsdsrew之类的字符做名字!
推荐标示符起名就知道是什么意思,如给一个变量起名:age。一看就知道这个变量是用来保存年龄的
2、标示符才用驼峰命名法
注解:
驼峰命名法(Camel-Case)
驼峰命名法(Camel-Case)是电脑程序编写时的一套命名规则(惯例)。
程序员们为了自己的代码能更容易的在同行之间交流,所以才取统一的可读性比较好的命名方式。例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。这样的命名规则不适合所有程序员阅读,而利用驼峰命名法来表示,可以增加程序可读性。
驼峰命名法就是当变量名或函数名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始,第二个单字的首字母大写;或每一个单字的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故而得名。
驼峰命名法(Camel-Case)一词来自 Perl 语言中普遍使用的大小写混合格式,而Larry Wall等人所著的畅销书《Programming Perl》的封面图片正是一匹骆驼。 驼峰命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。
C语言中变量名及函数名的命名规则与驼峰命名法的更多相关文章
- Java语言基本语法(一)————关键字&标识符(Java语言标识符命名规范&Java语言的包名、类名、接口名、变量名、函数名、常量名命名规则 )
一.关键字 关键字的定义和特点 定义:被Java语言赋予特殊含义,用做专门用途的字符串(单词). 特点:关键字中所有字母均为小写 下面列举一些常用的关键字. 用于定义数据类型的关键字:byte.sho ...
- PHP中的变量名,函数名,类名是区分大小写的吗
在PHP中,自定义的函数名,类名,以及内置的函数,关键字是不区分大小写的,比如: class,Class,CLASS,while,While,ECHO,echo,NULL,Null 都是一样的. 但是 ...
- C语言中变量和函数的作用域和链接属性
C语言中变量和函数的作用域和链接属性 作用域 代码块作用域: 代码块指的是使用"{}"包围起来的部分. 在代码块中定义的变量,代码块之外是不能访问的. 代码块嵌套之后的变量作用域, ...
- 在COM接口中不要使用同时出现只是大小写不同的名字作为属性名、函数名或者参数名
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在COM接口中不要使用同时出现只是大小写不同的名字作为属性名.函数名或者参数名.
- JavaScript变量名与函数名的命名规范
JavaScrip变量名与函数名的命名规范严格遵循以下5条: (1)首字符必须是字母.下划线.$,后跟任意的字母.数字.下划线.$ (2)严格区分大小写 (3)不能使用系统的关键字和保留字 (4)命名 ...
- C语言中变量、全局变量与变量的作用域
什么是变量: 变量常量都是表征数据的一种形式:常量用来表示数据的值: 变量不仅可以用来表示数据的值:还可以用来存放数据:因为变量对应着一定的内存单元: 变量和常量必须先定义后使用. 变量名和常量名都是 ...
- js中变量提升和函数提升
变量提升和函数提升的总结 我们在学习JavaScript时,会遇到变量提升和函数提升的问题,为了理清这个问题,现做总结如下,希望对初学者能有所帮助 我们都知道 var 声明的变量有变量提升,而 let ...
- C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期
全局变量 作用域:全局作用域(全局变量只需在一个源文件中定义,就可以作用于所有的源文件.) 生命周期:程序运行期一直存在 引用方法:其他文件中要使用必须用extern 关键字声明要引用的全局变量. 内 ...
- C语言中可变参数的函数(三个点,“...”)
C语言中可变参数的函数(三个点,“...”) 本文主要介绍va_start和va_end的使用及原理. 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end ...
随机推荐
- iTerm的安装以及配置Oh My Zsh
iTerm说简单点就是Windows的命令提示符,可能说这个大家感觉没用过,其实也就是人们经常使用CMD,相当于苹果的终端,但是比自带的终端强大多了. 本文就是简单的说一下安装和简单的配置过程. 首先 ...
- node安装和npm全局配置
本文章环境 windows10 64位家庭版 Node10.15.3LTS 安装包下载 Node官网 安装node 点击安装文件, 一键安装, 注意安装位置和添加到环境变量(xx to PATH)选项 ...
- FFMS2 API 译文 [原创]
FFMS2 又称 FFmpegSource2,参阅 https://github.com/FFMS/ffms2. 原文:https://github.com/FFMS/ffms2/blob/maste ...
- Netty源码分析第3章(客户端接入流程)---->第5节: 监听读事件
Netty源码分析第三章: 客户端接入流程 第五节: 监听读事件 我们回到AbstractUnsafe的register0()方法: private void register0(ChannelPro ...
- Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)---->第6节: 异线程回收对象
Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第六节: 异线程回收对象 异线程回收对象, 就是创建对象和回收对象不在同一条线程的情况下, 对象回收的逻辑 我 ...
- 高可用OpenStack(Queen版)集群-15.Glance&Cinder集成Ceph
参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...
- IDEA 2018 最新激活码 License server
IDEA 2018 最新激活码 License server 总会有一个属于适合你的!嘻嘻 http://hb5.s.osidea.cc:1017 http://idea.youbbs.org htt ...
- 使用spring整合Quartz实现—定时器
使用spring整合Quartz实现—定时器(Maven项目做演示) 不基于特定的基类的方法 一,开发环境以及依赖的jar包 Spring 4.2.6.RELEASE Maven 3.3.9 Jdk ...
- HTML和JS自解码机制
1.HTML 如果用户的输入被嵌入到HTML代码中,会进行HTML解码 解码方式包括: 1.HTML实体编码: 假定下面onclick后面的内容是可控的 点击按钮 2.进制编码: 点击按钮 2.JS ...
- 利用Elasticsearch搭建全球域名解析记录
前言 数据来源,由Rapid7收集并提供下载https://scans.io/study/sonar.fdns 下载Elasticsearch 2.3 ElasticSearch是一个基于Lucene ...