zerglurker的c语言教程——命名规则

今天讲讲C/C++中的命名规则

命名规则或者说命名限制可以应用于函数命名、变量命名、常量命名、结构体命名、自定义类型命名以及C++中类命名、对象命名、模板类或对象命名等等

第一条:名称的第一个字符只能是字母或者下划线。

int _,_a,A1,_9;//合法
int 1_a,1_,$S;//非法

注意:只有一个下划线的名称,在C/C++中是一个合法的名称!

第二条:名称中可以包含数字

第三条:名称中不能包含除了下划线、字母和数字之外的其他符号

第四条:名称是大小写敏感的

也就是说name和NAME是两个不同的名称(在数据库语言中,两者往往是等价的)

第五条:名称不能和关键字同名

比如你不能命名一个叫return的变量。(关键字的概念下节将详细说明)

隐含限制:

1 名称最好不能和系统函数、系统变量、库函数名、库提供的全局变量重名。

比如最好不要命名一个printf的函数,否则很容易在链接阶段(代码编译过程后面会涉及)出现冲突

2 main只能用于入口函数(或者说是起始函数)命名,不得用于其他函数、变量

当你违背该限制极可能导致编译器在链接阶段出现问题

另外现在编译器基本不会限制名称的长度(至少支持256字节长度的名字),但是命名长度最好不要超过32个。

因为在一些涉及单片机的开发中,老式的编译器对于超过31个长度的名字,会忽略之后的部分。

另外,在后面提到的库中,导出的名称如果过长,可能会导致链接问题

命名的建议:

1 合理的使用下划线分隔名称的各个单词

2 不建议以下划线开头命名函数和变量,因为这可能与某些系统保留名称或者变量名冲突

3 合理使用大小写来分隔名称的各个部分

4 宏名称最好一律用大写字母来命名(宏的含义后面会详解)

目前比较常用的命名规范:

匈牙利命名法  通过增加前缀来帮助人们对变量的理解

骆驼(Camel)命名法 如果一个名称由多个单词构成,则第一个单词全部小写,其后每个单词的首字母大写,其他字母小写

如果第一个单词的首字符你也大写了,嗯哼,没有关系,这是 帕斯卡(Pascal)命名法

下划线命名法 使用下划线来分隔名称中的各个部分

好了,今天就到这里了

各位可以自己在代码中尝试各种命名

时间: 2024-10-25 18:39:36

zerglurker的c语言教程——命名规则的相关文章

PHP语言的命名规则

想要了解和掌握一门编程语言,我觉得掌握它的命名规则很重要.不成规矩不成方圆,编程也是一样,不仅要你自己能看懂,别人也要可以看懂你的代码,这就需要掌握该门语言的命名规则.从程序员自己编写代码使用的命名规则,就可以一眼看出这个程序员的技术水平如何.本文和大家分享的就是php语言的命名规则,希望可以帮助大家更好的学习php ,一起来看看吧. 就一般约定而言,类.函数和变量的名字应该是能够让代码阅读者能够容易地知道这些代码的作用,应该避免使用凌磨两可的命名. 1. 类命名 ①使用大写字母作为词的分割,其

python学习笔记(01):python和c语言 标识符命名规则比较

python标识符命名规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’).标识符名称的其他部分可以由字母(大写或小写).下划线(‘ _ ’)或数字(0-9)组成.标识符名称是对大小写敏感的.例如,myname和myName不是一个标识符.注意前者中的小写n和后者中的大写N.有效 标识符名称的例子有i.__my_name.name_23和a1b2_c3.无效 标识符名称的例子有2things.this is spaced out和my-name. c语言标识符命

zerglurker的C语言教程002

经过上节课,大家现在已经有了一个可运行的C语言程序.相关代码和开发环境. 也许你会有一点疑问,为什么是建立main.cpp而不是main.c 另外,printf是什么?main是什么?#include是什么? 嗯,不要急,这些问题我都会慢慢告诉你们. 通过上节课的内容,我们知道代码要想编程程序,是需要一个工具的. 在windows下面,该工具vs提供了:而在linux下面,该工具叫做gcc. 这个工具,就是我们后面会提到的,称为编译器的东西.因为它将源代码编码转译为可运行文件,所以叫做编译器.

zerglurker的C语言教程004——指针初步讲解

在上次的教程里面,我提到了指针. 针对指针,这次我将简单的讲讲,后面我还会讲到--那个时候你应该有了相当的基础. 首先,先讲讲指针类型. 任何类型关键字后面加一个*符号,就会变成指针类型. 比如: char → char* 字符指针 int → int* 整数指针 double→double* 双精度指针 甚至还可以这样: char*→char** 字符指针的指针类型 →char*** 字符指针的指针的指针类型- 指针本质上是一个内存地址值,该内存地址上存放的是相关类型的数值.但是void*指针

zerglurker的C语言教程009——运算符详解(一)

在之前几节我们讲过数据类型.讲过函数.讲过代码执行顺序以及一些添加简单函数的方法. 这一节我们将着重讲讲运算符.包括运算符的含义以及优先级的概念 在C语言中,以下运算符是被公认的: C/C++语言运算符详解 优先级 运算符 名称以及含义 运算目 使用示例 结合方向 可否重载 附加说明 无 () 圆括弧 单目 (表达式) 无 否 括弧内的表达永远先计算 无 dynamic_cast<>() 类型动态转化 单目 dynamic_cast<目标类型>(源) 无 否 C++专有,不能转换返

zerglurker的c语言教程006——第一功能

行,以往的经验教训后,.成员main性能.变数.命名等基本概念应该有一个初步的了解 下面,我们就可以开始我们自己的第一个定义的函数. 仿照头等舱.操作的第二个教训.添加一个新的项目的解决方案Lession006 第一课main.cpppublic.h复制过来 然后例如以下图示意的那样增加到项目中来: 右键单击项目 在加入栏 选择现有项 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemVyZ2x1cmtlcg==/font/5a6L5L2T/fonts

zerglurker的C语言教程008——循环语句详解

上节课我们提到了程序语句的三大执行顺序:顺序执行.条件执行和循环执行 今天我们详细讲讲循环执行,不废话,先上代码和运行效果 首先来一段示例代码,老规矩,新建一个空项目(参考006课) 新建一个空的main.cpp和public.h public.h里面定义代码如下: void LargeDistributionSequence(unsigned int nLength); main.cpp代码如下: #include <stdio.h> #include "public.h"

zerglurker的C语言教程010——运算符详解(三)

同上节课,请参考运算符总览 本节主要讲讲sizeof 也许有的资料提到过C++的typeid,但是这个根本不是运算符,而是一个类,有文件定义的 所谓运算符必须是无需头文件即可使用的符号.如果要使用一个运算符,还需要头文件,那么这个运算符就不是基本的运算符,是开发人员重载或者自己写的. 从这个角度看typeid就不是运算符,而是微软自定义的. 运算符的另一个特点是,对常量进行操作,编译阶段就会进行处理. 比如 int a = sizeof(int) ; 编译器会在编译的时候直接将4用来初始化a.所

zerglurker的C语言教程010——运算符详解(二)

首先,请参考上节课我们提到的运算符总览 今天我们主要讲解下面几个运算符: ()圆括弧运算符 {}组合运算符 ::作用域解析 throw运算符 ,逗号运算符 ()圆括弧运算符 使用示例: a*(b+c) (b>=a)&&(c<=a) (a%(b/c))*d 特点说明: 1 圆括弧拥有优先执行权限.即运算表达式时,优先运算圆括弧内的表达. 2 圆括弧可以嵌套,嵌套时内部的圆括弧拥有更高的优先级. 注意: 由于()作为圆括弧运算符的时候,里面的表达式不可以为空,也不可以有多个语句,所