当前位置:文档之家› C语言中常见的变量

C语言中常见的变量

C语言中常见的变量
C语言中常见的变量

变量

变量类型和表示方法

1.什么是变量?

变量是存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字符等等,那么对应的变量就有整型变量、浮点型变量、字符型变量。变量还有其他的具体分类。整型变量还可具体分为无符号型、长整型和短整型。浮点型也可分为单精度型、双精度型和长双精度型。此外还可以分为静态变量、外部变量、寄存器变量和自动存储变量。这些数据类型我们在本节和后面的章节中都会陆陆续续介绍。

为了区分各个变量我们给每个变量取个名字,这个名字我们叫做标识符。

标识符的命名有一定的规则:

(1).标识符只能由字母、数字和下划线三类字符组成

(2).第一个字符必须是字母(第一个字符也可以是下划线,但被视作系统自定义的标识符)

(3).大写字母和小写字母被认为是两个不同的字符,如A和a是两个不同的标识符

(4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于链接程序的限制所总成的,而不是C语言本身的局限性

(5).标识符不能是C的关键字

2.从上面的规则中,有个关键字的概念。那么什么叫关键字呢?

从表面字意上也可以看出,关键字是C语言本身某些特性的一个表示,是唯一的代表某一个意思的。

下面列出ANSI标准定义的32个C语言的关键字,这些关键字在以后的学习中基本上都会用到,到时再说它们的各自用法。

auto break case char const continue default

do double else enum extern float for

goto if int long register return short

signed sizeof static struct switch typedef

union unsigned void volatile while

C语言还包括一些不能用做标识符的扩展关键字。

asm cdecl _cs _ds _es far

huge interrupt near pascal _ss

所以在以后的学习中,在给变量命名时要避开这些关键字。

3. Turbo C2.0规定所有变量在使用前都必须加以说明。一条变量说明语句由数据类型和其后的一个或多个变量名组成。变量说明的形式如下:

类型<变量表>;

这里类型是指Turbo C2.0的有效数据类型。变量表是一个或多个标识符名,每个标识符之间用,分隔。

(二)、整型变量

整型变量是用来存储整数的。

整型变量又可具体分为好几种,最基本的整型变量是用类型说明符int声明的符号整型,形式如下:

int Counter;

这里int是类型说明符,Counter是变量的名字。

整型变量可以是有符号型、无符号型、长型、短型或象上面定义的普通符号整型。

整型是16位的,长整型是32位,短整型等价于整型。

以下是几种整型变量的声明示例:

long int Amount; /*长整型*/

long Amount; /*长整型,等价于上面*/

signed int Total; /*有符号整型*/

signed Total; /*有符号整型,等价于上面*/

unsigned int Offset; /*无符号整型*/

unsigned Offset; /*无符号整型,等价于上面*/

short int SmallAmt; /*短整型*/

short SmallAmt; /*短整型,等价于上面*/

unsigned short int Month; /*无符号短整型*/

unsigned short Month; /*无符号短整型,等价于上面*/

从上面的示例可以看出,当定义长整型、短整型、符号整型或无符号整型时,可以省略关键字int。

注明:

1.用signed对整型变量进行有符号指定是多余的,因为除非用unsigned指定为无符号型,否则整型都是有符号的。

2.当一个变量有几重特性时,声明关键字的顺序可以任意。以下几种声明是等价的:unsigned long T1;

long unsigned T2;

unsigned long int T3;

unsigned int long T4;

long unsigned int T5;

long int unsigned T6;

int unsigned long T7;

int long unsigned T8;

(三)、浮点类型变量

顾名思义,浮点类型变量是用来存储带有小数的实数的。

C语言中有三种不同的浮点类型,以下是对这三种不同类型的声明示例:

float Amount; /*单精度型*/

double BigAmount; /*双精度型*/

long double ReallyBigAmount; /*长双精度型*/

这里Amount,BigAmount,ReallyBigAmount都是变量名。

浮点型都是有符号的。

(四)、字符型变量

字符型变量中所存放的字符是计算机字符集中的字符。对于PC机上运行的C系统,字符型数据用8位单字节的ASCII码表示。程序用类型说明符char来声明字符型变量:

char ch;

这条声明语句声明了一个字符型变量,标识符为ch。当以这种形式声明变量之后,程序可以在表达式中引用这个变量,关于语句和表达式的知识在后面将会介绍。

字符数据类型事实上是8位的整型数据类型,可以用于数值表达式中,与其他的整型数据同样使用。在这种情况下,字符型变量可以是有符号的,也可以是无符号的。对于无符号的字

符型变量可以声明为:

unsigned char ch;

除非声明为无符号型,否则在算术运算和比较运算中,字符型变量一般作为8位有符号整型变量处理。

还有其他的如指针型变量,void型变量,以后再介绍。

C_C++变量命名规则

C/C++变量命名规则 变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则: 1、变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。 2、第一个字母必须是字母或者下划线开头。 3、不能使用C++关键字来命名变量,以免冲突。 4、变量名区分大小写。 变量命名规则: 一、用最短字符表示最准确的意义。 二、使用变量前缀。 1、整型前缀 int nId; //int前缀:n short sId; //short前缀:s unsigned int unId // unsigned int 前缀:un long lId; //long前缀:l 2、浮点型前缀 float fValue; //float前缀:f double dValue; //double前缀:d 3、字符型前缀 char chChar; //char前缀:ch 4、字符串前缀 char szPath; //char字符串前缀:sz string strPath; //string字符串前缀:str CString strPath; //MFC CString类前缀:str 5、布尔型前缀 bool bIsOK; //bool类型前缀:b BOOL bIsOK; //MFC BOOL前缀:b 6、指针型前缀 char * pPath; //指针前缀:p 7、数组前缀 int arrnNum; //数组前缀:arr CString arrstrName; //数组前缀+类型前缀+名称

8、结构体前缀 STUDENT tXiaoZhang; //结构体前缀:t 9、枚举前缀 enum emWeek; //枚举前缀:em 10、字节的前缀 BYTE byIP; //字节前缀:by 11、字的前缀 DWORD dwMsgID; //双字前缀:dw WORD wMsgID; //单字前缀:w 12、字符指针前缀 LPCTSTR ptszName; //TCHAR类型为ptsz LPCSTR pszName; //pcsz LPSTR pszName; //psz 13、STL容器前缀 vector vecValue; //vector容器前缀:vec 14、RECT矩形结构前缀 RECT rcChild; //rc CRECT rcChild/ //rc 15、句柄前缀 HWND hWndDlg; //h HBRUSH hBr; //h HPEN hPen; //h HBITMAP hBmpBack; //h 16、Windows颜色前缀 COLORREF crFont; //cr 17、Windows DC前缀 CDC dcClient; //dc 三、类的成员变量以m_开头,后面为变量,变量同时还要加前缀。 CString m_strName; //m_开头+类型前缀+名称 四、定义一个变量,为了简化,在不影响变量意义的情况下,可仅仅使用前缀。 RECT rc; 五、全局变量一律以g_开头,后面为变量,变量同时还要加前缀。

单片机C语言变量名命名规则整理

C语言变量名命名规则 一、程序风格: 1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。 要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信息字符串的位置 在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。 3、对变量的定义,尽量位于函数的开始位置。 二、命名规则: 1、变量名的命名规则 ①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。 即:变量名=变量类型+变量的英文意思(或缩写) 对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。 见下表:

对未给出的变量类型要求提出并给出命名建议给技术委员会。 ②、指针变量命名的基本原则为: 对一重指针变量的基本原则为: “p”+变量类型前缀+命名 如一个float*型应该表示为pfStat 对多重指针变量的基本规则为: 二重指针:“pp”+变量类型前缀+命名 三重指针:“ppp”+变量类型前缀+命名 ...... ③、全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写) ④、静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst,即:变量名=s_+变量类型+变量的英文意思(或缩写) ⑤、成员变量用m_开头,如一个长型成员变量定义为m_lCount;即:变量名=m_+变量类型+变量的英文意思(或缩写) ⑥、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。 如:enum cmEMDAYS { EMDAYS_MONDAY; EMDAYS_TUESDAY; …… }; ⑦、对struct、union、class变量的命名要求定义的类型用大写。并要加

单片机C语言变量定义

单片机教程,51单片机C语言学习 第六课变量 上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下:[存储种类] 数据类型[存储器类型] 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。这些存储种类的具体含义和用法,将在第七课《变量的存储》中进一步进行学习。 而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表6-1中是KEILuVision2所能认别的存储器类型。注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。特殊寄存器(SFR)的地址表请看附录二 如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计数器和队列索引放在内部数据区可以显着的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。 SMALL存储模式把所有函数变量和局部数据段放在8051系统的内部数据存储区这使访问数据非常快,但SMALL存储模式的地址空间受限。在写小型的应用程序时,变量和数据放在data内部数据存储器中是很好的因为访问速度快,但在较大的应用程序中data区最好只存放小的变量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。 COMPACT存储模式中所有的函数和程序变量和局部数据段定位在8051系统的外部数据存储区。外部数据存储区可有最多256字节(一页),在本模式中外部数据存储区的短地址用@R0/R1。

单片机C语言变量定义定稿版

单片机C语言变量定义 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

单片机教程,51单片机C语言学习 第六课变量 上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下: [存储种类] 数据类型[存储器类型] 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。这些存储种类的具体含义和用法,将在第七课《变量的存储》中进一步进行学习。 而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表6-1中是KEIL uVision2所能认别的存储器类型。注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。特殊寄存器(SFR)的地址表请看附录二AT89C51特殊功能寄存器列表

表6-1 存储器类型 如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计数器和队列索引放在内部数据区可以显着的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。

c语言函数命名规范

竭诚为您提供优质文档/双击可除 c语言函数命名规范 篇一:c语言命名规则 匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的 命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理 解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推 广给了全世界的windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守 它和上面的代码风格。 aarray数组 bbool(int)布尔(整数) byunsignedchar(byte)无符号字符(字节) cchar字符(字节) cbcountofbytes字节数 crcolorreferencevalue颜色(参考)值 cxcountofx(short)x的集合(短整数)

dwdwoRd(unsignedlong)双字(无符号长整数) fFlags(usuallymultiplebitvalues)标志(一般是有多位的数值) fnFunction函数 g_global全局的 hhandle句柄 iinteger llong lplongpointer m_datamemberofaclass 成员 nshortint ppointer sstring szzeroterminatedstring 符串 tmtextmetric uunsignedint ulunsignedlong(ulong)整数长整数长指针一个类的数据短整数指针字符串以0结尾的字文本规则无符号整数无符号长整数 wwoRd(unsignedshort)无符号短整数

C++变量命名规则

C++变量命名规则2008-09-03 14:48a Array 数组 b BOOL (int) 布尔(整数) by Unsigned Char (Byte) 无符号字符(字节) c Char 字符(字节) cb Count of bytes 字节数 cr Color reference value 颜色(参考)值 cx Count of x (Short) x的集合(短整数) dw DWORD (unsigned long) 双字(无符号长整数) f Flags (usually multiple bit values) 标志(一般是有多位的数值) fn Function 函数 g_ global 全局的 h Handle 句柄 i Integer 整数 l Long 长整数 lp Long pointer 长指针 m_ Data member of a class 一个类的数据成员 n Short int 短整数 p Pointer 指针 s String 字符串 sz Zero terminated String 以0结尾的字符串 tm Text metric 文本规则 u Unsigned int 无符号整数

ul Unsigned long (ULONG) 无符号长整数 w WORD (unsigned short) 无符号短整数 x,y x, y coordinates (short) 坐标值/短整数 v void 空 有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。 前缀类型例子 g_ 全局变量g_Servers C 类或者结构体CDocument,CPrintInfo m_ 成员变量m_pDoc,m_nCustomers VC常用前缀列表: 前缀类型描述例子 ch char 8位字符chGrade ch TCHAR 16位UNICODE类型字符chName b BOOL 布尔变量bEnabled n int 整型(其大小由操作系统决定)nLength n UINT 无符号整型(其大小由操作系统决定)nLength

C语言编程规范简述

C语言编程规范简述 注释规范 注释的原则和目的注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的——清晰准确的函数、变量等的命名,可增加代码可读性,并减少不必要的注释——过量的注释则是有害的。 注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止重复注释信息。 进行注释时的注意事项:(1)建议边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。(2)注释的内容要清楚、明了,含义准确,防止注释二义性。说明:错误的注释不但无益反而有害。(3)避免在注释中使用缩写,特别是非常用缩写。在使用缩写时或之前,应对缩写进行必要的说明。 命名规范 命名的基本原则: (1)标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解——尽量采用采用英文单词或全部中文全拼表示,若出现英文单词和中文混合定义时,使用连字符“_”将英文与中文割开。较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。例如:temp->tmp、flag->标志寄存器、statistic->stat、increment->inc、message->msg等缩写能够被大家基本认可。 (2)命名中若使用特殊约定或缩写,则要有注释说明。应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。 (3)自己特有的命名风格,要自始至终保持一致,不可来回变化。个人的命名风格,在符合所在项目组或产品组的命名规则的前提下,才可使用。(即命名规则中没有规定到的地方才可有个人命名风格)。 (4)对于变量命名,禁止取单个字符(如i 、j 、k... ),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i 、j 、k 作局部循环变量是允许的。变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。 (5)除非必要,不要用数字或较奇怪的字符来定义标识符。 (6)命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。 (7)在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突。对接口部分的标识符应该有更严格限制,防止冲突。如可规定接口部分的变量与常量之前加上“模块”标识等。 (8)用正确的反义词组命名具有互斥意义的变量或相**作的函数等。

C 函数变量命名规则

a Array数组 b BOOL(int)布尔(整数) by Unsigned Char(Byte)无符号字符(字节) c Char字符(字节) cb Count of bytes字节数 cr Color reference value颜色(参考)值 cx Count of x(Short)x的集合(短整数) dw DWORD(unsigned long)双字(无符号长整数) f Flags(usually multiple bit values)标志(一般是有多位的数值) fn Function函数 g_global全局的 h Handle句柄 i Integer整数 l Long长整数 lp Long pointer长指针 m_Data member of a class一个类的数据成员 n Short int短整数 p Pointer指针 s String字符串 sz Zero terminated String以0结尾的字符串 tm Text metric文本规则 u Unsigned int无符号整数 ul Unsigned long(ULONG)无符号长整数 w WORD(unsigned short)无符号短整数

x,y x,y coordinates(short)坐标值/短整数 v void空 有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。 前缀类型例子 g_全局变量g_Servers C类或者结构体CDocument,CPrintInfo m_成员变量m_pDoc,m_nCustomers VC常用前缀列表: 前缀类型描述例子 ch char8位字符chGrade ch TCHAR16位UNICODE类型字符chName b BOOL布尔变量bEnabled n int整型(其大小由操作系统决定)nLength n UINT无符号整型(其大小由操作系统决定)nLength w WORD16位无符号整型wPos l LONG32位有符号整型lOffset dw DWORD32位无符号整型dwRange p*Ambient memory model pointer内存模块指针,指针变量pDoc lp FAR*长指针lpDoc lpsz LPSTR32位字符串指针lpszName lpsz LPCSTR32位常量字符串指针lpszName lpsz LPCTSTR32位UNICODE类型常量指针lpszName h handle Windows对象句柄hWnd

C语言常用规则

C语言常用规则 一、程序风格: 1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。 要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信息字符串的位置 在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。 3、对变量的定义,尽量位于函数的开始位置。 这样的目的是为了检查的方便,以后自己看或检查和别人看会方便很多,具体的资料还可以参考林锐写的关于C语言的一个文章! 二、命名规则: 1、变量名的命名规则 ①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。 即:变量名=变量类型+变量的英文意思(或缩写) 对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。 见下表:

对未给出的变量类型要求提出并给出命名建议给技术委员会。 ②、指针变量命名的基本原则为: 对一重指针变量的基本原则为: “p”+变量类型前缀+命名 如一个float*型应该表示为pfStat 对多重指针变量的基本规则为: 二重指针:“pp”+变量类型前缀+命名 三重指针:“ppp”+变量类型前缀+命名 ...... ③、全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写) ④、静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst,即:变量名=s_+变量类型+变量的英文意思(或缩写) ⑤、成员变量用m_开头,如一个长型成员变量定义为m_lCount;即:变量名=m_+变量类型+变量的英文意思(或缩写) ⑥、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。 如:enum cmEMDAYS { EMDAYS_MONDAY; EMDAYS_TUESDAY;

单片机C语言变量定义

单片机C语言变量定义集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

单片机教程,51单片机C语言学习第六课变量 上课所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下: [存储种类] 数据类型[存储器类型] 变量名表 在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。这些存储种类的具体含义和用法,将在第七课《变量的存储》中进一步进行学习。 而这里的数据类型则是和我们在第四课中学习到的名种数据类型的定义是一样的。说明了一个变量的数据类型后,还可选择说明该变量的存储器类型。存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表6-1中是KEILuVision2所能认别的存储器类型。注意的是在AT89C51芯片中RAM只有低128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。特殊寄存器(SFR)的地址表请看附录二AT89C51特殊功能寄存器列表

表6-1 存储器类型 如果省略存储器类型,系统则会按编译模式SMALL,COMPACT或LARGE所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的8051存储区范围,然而把最常用的命令如循环计数器和队列索引放在内部数据区可以显着的提高系统性能。还有要指出的就是变量的存储种类与存储器类型是完全无关的。 SMALL存储模式把所有函数变量和局部数据段放在8051系统的内部数据存储区这使访问数据非常快,但SMALL存储模式的地址空间受限。在写小型的应用程序时,变量和数据放在data内部数据存储器中是很好的因为访问速度快,但在较大的应用程序中data区最好只存放小的变量、数据或常用的变量(如循环计数、数据索引),而大的数据则放置在别的存储区域。 COMPACT存储模式中所有的函数和程序变量和局部数据段定位在8051系统的外部数据存储区。外部数据存储区可有最多256字节(一页),在本模式中外部数据存储区的短地址用@R0/R1。 LARGE存储模式所有函数和过程的变量和局部数据段都定位在8051系统的外部数据区外部数据区最多可有64KB,这要求用DPTR数据指针访问数据。 之前提到简单提到sfr,sfr16,sbit定义变量的方法,下面我们再来仔细看看。 sfr和sfr16可以直接对51单片机的特殊寄存器进行定义,定义方法如下:sfr特殊功能寄存器名=特殊功能寄存器地址常数; sfr16特殊功能寄存器名=特殊功能寄存器地址常数; 我们可以这样定义AT89C51的P1口 sfrP1=0x90;//定义P1I/O口,其地址90H sfr关键定后面是一个要定义的名字,可任意选取,但要符合标识符的命名规则,名字最好有一定的含义如P1口可以用P1为名,这样程序会变的好读好多。等号后面必须是

C语言程序设计代码规范

C++语言程序设计代码规范 1 命名规范 本规范对变量、函数、类(结构)等的名称有严格的规定,在编码过程中务必遵守。 1.1 变量命名规范 变量名称采用匈牙利命名法,即:完整的名称由“缀”和“主体”复合而成。“缀”用于指示变量的种类、数值类型、作用域等属性,由小写字符和下划线(_)组成,根据其附着在“主体”的位置分为前缀和后缀两种。“主体”表示变量的语义。 整个变量名称的格式如下: <作用域前缀>[<指针缀>]<类型缀><主体><作用域后缀> 下面详细论述。 1.1.1 作用域缀(前缀和后缀) 作用域前缀处在整个变量名的最前面。常用的作用域前缀为: 作用域后缀处在整个变量名的最后面。只有一种情况使用作用域后缀,就是函数的形参必须以作用域后缀结束。 1.1.2 指针缀 如果一个变量是指针,则必须使用指针缀。指针缀使用字母p表示。 以前,在DOS平台下有短指针和长指针的区别,有时称长指针为lp。在Win32平台下已经不存在这个区别了,所以统一使用p, 而不是lp。 1.1.3 类型缀 类型缀由小写字符构成,用于描述变量的类型。注意: 1.不要私自创造出各种各样的前缀。 2.也没有必要在前缀中仔细区分一些细小的类型区别,那样会给代码维护工作带来额外的麻烦。 常用的类型前缀为:

对于其他不在上面表中的结构、类等复杂数据类型,特别是不常使用的和不通用的,不使用前缀。例如: class Person Jonson; struct DateTime MyDt; 在应用场合明确的情况下,例如:简单的局部变量,它的值类型前缀有时可以省略。具体见下面的例子。 1.1.4 复合前缀 根据以上规则,变量根据它所在的作用域、类型、是否是指针,得到一个复合前缀。例如: char g_szFileName[_MAX_PATH]; //全局字符串变量 char* g_pszFileName; //全局字符串指针变量: char s_szFileName[_MAX_PATH]; //静态字符串变量 char* s_pszFileName; //静态字符串指针变量: char _s_szFileName[_MAX_PATH]; //局部静态字符串变量 char* _s_pszFileName; //局部静态字符串指针变量: char m_szFileName[_MAX_PATH]; //类字符串变量 char* m_pszFileName; //类字符串指针变量: char ms_szFileName[_MAX_PATH]; //类静态字符串变量 char* ms_pszFileName; //类静态字符串指针变量: 更多的例子,参见下面按照作用域讨论变量名一节。 1.1.5 主体 用于描述变量的上下文意义。 一般地,由首字母大写的一个或者多个单词构成,要求用英语作为描述语言。如:FileName,

C语言全局变量定义方法

C语言全局变量定义方法 (2011-11-25 21:11:28) 转载▼ 标签: 分类:C语言 杂谈 今天调试系统的时候,需要定义几个全局位变量,定义好后一编译,发现错误一大堆,错误基本都是位变量定义时产生的。以前也定义过全局变量啊,但是先前怎么没错误?瞎折腾了一会最后还是发现问题出在细节上面了。以前只是侥幸没遇到而已。今天做个总结,以后再忘记了就回来直接查一下。 我们都知道定义在函数外部的变量就叫做全局变量,但是通常只有一个C文件和一个H文件的时候那样定义是不会出问题的。一个大的系统会包含好多个.C文件和.H文件,每个.C文件都有可能会访问全局变量,所以全局变量在定义的时候就要稍微做下改变了。通常的做法是建立一个包含系统所有全局变量的.H文件,系统用到的所有全局变量都定义在该文件内,文件名可以用Global修饰一下。在该文件中定义某个全局变量的时候需要用extern声明该变量为外部变量。比如要定义SysEventCounter标志为unsigned char型的全局变量可以这样定义: extern unsigned char SysEventCounter; <----这里是关键,不能对该变量赋值,只能声明,赋值就会报错。 上述声明是写在.H文件中的。其他.C文件若要用到该变量,直接包含该.H文件就可以了 如果想要赋初值,可以在用到它的.C文件中这样写: unsigned char SysEventCounter = 0; 不用赋初值时,直接 unsigned char SysEventCounter; 就可以了。注意:只需要在一个.C文件中写即可,其他.C文件直接可以用。如果在其他.C 文件中也这样写会产生重复定义的错误。

c语言变量命名规则较多较乱

c语言变量命名规则_较多较乱 几年以前,Charles Simonyi(他后来成为微软的著名程序员)设计了一种以前缀为基础的命名方法,这种方法后来称为"匈牙利表示法"以记念他.他的思想是根据每个标识符所代表的含义给它一个前缀.微软后来采用了这个思想,给每个标识符一个前缀以说明它的数据类型.因此,整型变量的前缀是n,长整型变量是nl,字符型数组变量是ca,以及字符串(以空类型结尾的字符数组)以sz为前缀.这些名字可能会非常古怪.比如说:lpszFoo表示"Foo"是一个指向以空字符为结尾的字符串的长整型指针. 这种方法的优点是使人能够通过变量的名字来辨别变量的类型,而不比去查找它的定义.遗憾的是,这种方法不仅使变量名字非常绕口,而且使改变变量类型的工作变得十分艰巨.在Windows3.1中,整型变量为16为宽.如果我们在开始时采用了一个整型变量,但是在通过30---40个函数的计算之后,发现采用整型变量宽度不够,这时我们不仅要改变这个变量的类型,而且要改变这个变量在这30--40个函数中的名字. 因为不切实际,除了一些顽固的Windows程序员外已经没有人再使用"匈牙利表示法"了.毫无疑问,在某种场合它依然存在,但大部分人现在已经抛弃它了.一般而言,输入前缀是一种糟糕的想法,因为它把变量于其类型紧紧地绑在了一起. 对于30行以下的函数,匈牙利方法一般有优势。 尤其是对界面编程,有优势。 但对于有强烈的算法要求、尤其是有很多抽象类型的C++程序,匈牙利方法简直是一个灾难。 看你用在什么地方。 现在有了很好的IDE工具,如:VC,SourceInsight等. 选中变量,会自动提示告诉你它的声明和定义,这样 匈牙利命名法就没有很大的必要了.

c语言源程序名的后缀命名规则

C语言源程序命名规则 C是一门朴素的语言,你使用的命名也应该这样。与Modula-2和Pascal程序员不同,C程序员不使用“ThisVariableIsATemporaryCounter”这样“聪明”的名字。C程序员应该叫它“tmp”,这写起来更简单,也不会更难懂。 然而,当面对复杂情况时就有些棘手,给全局变量取一个描述性的名字是必要的。把一个全局函数叫做“foo”是一种目光短浅的行为。全局函数也一样,如果你有一个统计当前用户个数的函数,应当把它命名为“count_active_user()”或者简单点些的类似名称,不应该命名为“cntusr()”。 1、三种流行的命名法则 目前,业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法。 (1)驼峰命令法。正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数: printEmployeePaychecks(); print_employee_paychecks(); 第一个函数名使用了驼峰命名法,函数名中的每一个逻辑断点都有一个大写字母来标记。第二个函数名使用了下划线法,函数名中的每一个逻辑断点都有一个下划线来标记。 驼峰命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得当相多。另一方面,下划线法是C出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。

(2)匈牙利命名法。广泛应用于象Microsoft Windows这样的环境中。Windows 编程中用到的变量(还包括宏)的命名规则为匈牙利命名法,这种命名技术是由一位能干的Microsoft 程序员查尔斯-西蒙尼(Charles Simonyi) 提出的。 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域、类型等。这些符号可以多个同时使用,顺序是先m_(成员变量)、再指针、再简单数据类型、再其它。这样做的好处在于能增加程序的可读性,便于对程序的理解和维护。 例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。 (3)帕斯卡(pascal)命名法。与驼峰命名法类似,二者的区别在于:驼峰命名法是首字母小写,而帕斯卡命名法是首字母大写,如:DisplayInfo(); string UserName; 二者都是采用了帕斯卡命名法。 (4)三种命名规则的小结:MyData就是一个帕斯卡命名的示例;myData是一个驼峰命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼;iMyData是一个匈牙利命名法,它的小写的i说明了它的型态,后面的和帕斯卡命名相同,指示了该变量的用途。 2、命名的基本原则 (1)标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解——尽量采用采用英文单

C语言命名规范

C是一门朴素的语言,你使用的命名也应该这样。与Modula-2和Pascal程序员不同,C程序员不使用诸如“ThisVariableIsATemporaryCounter”这样“聪明”的名字。C程序员应该叫它“tmp”,这写起来更简单,也不会更难懂。 然而,当面对复杂情况时就有些棘手,给全局变量取一个描述性的名字是必要的。把一个全局函数叫做“foo”是一种目光短浅的行为。全局函数也一样,如果你有一个统计当前用户个数的函数,应当把它命名为 “count_active_user()”或者简单点些的类似名称,不应该命名为“cntusr()”。 1 三种流行的命名法则目前,业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法。 (1)驼峰命令法。正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数: printEmployeePaychecks(); print_employee_paychecks(); 第一个函数名使用了驼峰命名法,函数名中的每一个逻辑断点都有一个大写字母来标记。第二个函数名使用了下划线法,函数名中的每一个逻辑断点都有一个下划线来标记。 驼峰命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得当相多。另一方面,下划线法是C出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。 (2)匈牙利命名法。广泛应用于象Microsoft Windows这样的环境中。Windows 编程中用到的变量(还包括宏)的命名规则为匈牙利命名法,这种命名技术是由一位能干的Microsoft 程序员查尔斯-西蒙尼(Charles Simonyi) 提出的。 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域、类型等。这些符号可以多个同时使用,顺序是先m_(成员变量)、再指针、再简单数据类型、再其它。这样做的好处在于能增加程序的可读性,便于对程序的理解和维护。 例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。 (3)帕斯卡(pascal)命名法。与驼峰命名法类似,二者的区别在于:驼峰命名法是首字母小写,而帕斯卡命名法是首字母大写,如: DisplayInfo();

C语言标识符命名规则(变量名和函数名)

C语言标识符命名规则(变量名和函数名) C语言变量和函数命名规范 2010年08月05日星期四20:18C语言变量和函数命名规范: 关于C语言变量和函数命名规范据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。 1.共性规则 本节论述的共性规则是被大多数程序员采纳的,我们应当在遵循这些共性规则的前提下,再扩充特定的规则,如3.2节。 【规则1-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。 标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。程序中的英文单词一般不会太复杂,用词应当准确。例如不要把CurrentValue写成

NowValue。 【规则1-2】标识符的长度应当符合“min-length && max-information”原则。 几十年前老ANSI C规定名字不准超过6个字符,现今的C++/C不再有此限制。一般来说,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。那么名字是否越长约好?不见得! 例如变量名maxval 就比maxValueUntilOverflow好用。单字符的名字也是有用的,常见的如i,j,k,m,n,x,y,z等,它们通常可用作函数内的局部变量。 【规则1-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。 例如Windows应用程序的标识符通常采用“大小写”混排的方式,如AddChild。而Unix应用程序的标识符通常采用“小写加下划线”的方式,如add_child。别把这两类风格混在一起用。 【规则1-4】程序中不要出现仅靠大小写区分的相似的标识符。 例如: int x,X;// 变量x 与X 容易混淆 void foo(int x);// 函数foo 与FOO容易混淆 void FOO(float x);

C语言编码规范

C语言编码规范

文档修改记录 版本版本日期说明编写者审核者V0.1吕晓敏

1排版规则 1)程序应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶 格书写; 2)源程序建议使用英文书写,尽量不含有中文。每行不超过80字符。对于较长的语 句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读;循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分; 3)左花括号要另起一行,不能跟在上一行的行末; 4)一个变量定义占一行,一个语句占一行; 5)对独立的程序块之间、变量说明之后必须加空行; 6)在结构成员赋值等情况,等号对齐,最少留一个空格; 7)若函数或过程中的参数较长,则要进行适当的划分。 8)形参的排序风格: 最常使用的参数放在第一位; 输入参数列表应放在输出参数列表的左边; 将通用的参数放在特殊的参数的左边。 2命名规范 2.1应用程序的命名 “系统简称”+模块名称 2.2子模块的命名 每个子模块的名字应该由描述模块功能的1-3以单词组成。每个单词的首字母应大写。在这些单词中可以使用一些较通用的缩写。 2.3变量的命名 变量的命名的基本原则是使得变量的含义能够从名字中直接理解。可以用多个英文单词拼写而成,每个英文单词的首字母要大写,其中英文单词有缩写的可用缩写;变量的前缀表示该变量的类型;对于作用域跨越10行以上的变量名称不能少于4个字符,除循环变量,累加变量外不得使用I、j、k等名称的变量。变量分为取全局变量和局部变量,对于全局变量以加前缀“g_”来区分。 使用有意义的英语单词,使用大小写分隔,每个单词的第一个字母为大写标识符种类书写规范示例 函数/过程名/变量一般标识符CheckButtonStates 宏标识符大写标识符SALES_TAX 类型定义‘T’+一般标识符TMyType 类标识符‘C’+一般标识符CEditBox 结构标识符‘S’+一般标识符SMyStructure 联合标识符‘U’+一般标识符UMyUnion

C语言格式书写要求规范

C语言书写规指南 第1章文件结构 每个C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀。 1.1和版本的声明 和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要容有: (1)信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。 /* *Copyright(c)2001,大学物理学院无线电 *Allrightsreserved. * *文件名称:filename.h *文件标识: *摘要:简要描述本文件的容 * *当前版本:1.1 *作者:输入作者(或修改者)名字 *完成日期:2007年7月20日 * *取代版本:1.0

*原作者:输入原作者(或修改者)名字 *完成日期:2007年5月10日 */ 示例1-1和版本的声明 1.2头文件的结构 头文件由三部分容组成: (1)头文件开头处的和版本声明(参见示例1-1)。 (2)预处理块。 (3)函数和类结构声明等。 假设头文件名称为SCL_SPI.h,头文件的结构参见示例1-2。 【规则1-2-1】为了防止头文件被重复引用,应当用#ifndef/#define/#endif结构产生预处理块。 【规则1-2-2】用#include 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 【规则1-2-3】用#include “filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【规则1-2-4】#include 后面使用TAB键控制排版。 【规则1-2-5】头文件中只存放“声明”而不存放“定义” 【规则1-2-6】全局变量在头文件中声明,在.c文件中定义 .h extern in tvalue; 声明。 .c in tvalue=0x10; 定义。 【规则1-2-7】局部变量在.c中定义(static)unsigned in tvalue; 定义。 //和版本声明见示例1-1,此处省略。

数据类型、变量的命名规则

1、整数类型: 默认情况下,C语言中声明的整型变量都使用有符号的,也就是说最左侧保留符号位,如果不需要使用符号位,则需要声明为unsigned类型。无符号整数主要用于系统编程和底层与机器相关的应用。 unsigned(无符号)和signed(有符号)可以修饰整型和浮点型和char类型;unsigned包括0和正数(没有负数),signed包括负数、0、正数。 在不同CPU位数的计算机上,各整数类型的取值范围如下表: 2、浮点类型 C语言中提供了三种浮点类型: float:单精度浮点数。适用于对精度没有太多要求的小数的表示; double:双精度浮点数。提供更精确的数据表示; long double:扩展精度浮点数。精度极高,使用机率很小;(了解) 浮点类型取值范围参考下表:

浮点常量说明: 浮点常量必须包含小数点或指数,其中指数指明了对前面的数进行缩放的10的幂次。默认情况下浮点常量以双精度形式存储,也就是说当C语言编译器遇到程序中的浮点常量时,会以double类型值将其存储于内存中,并且double类型值在需要时向float类型转化时也不会出现任何问题。某些情况下,为了明确地标识数值,或者强制编译器按照某种数据类型处理数值,我们需要显式地在数值之后增加标记,来明确常量的处理类型。例如:57.0F、57.0f等。 3、字符类型: 字符类型在内存中占1个字节的长度,字符变量可用任意单字符赋值,字符常量需要用单引号扩起。每一个字符在ASCII码表中都会对应一个十进制数值,C语言允许将字符作为整数来使用,并参与运算。 4、变量的命名规则: 变量名只可以由字母、数字、下滑线组成,除此之外不能包含其它特殊字符(如:控制字符、特殊符号等); 变量名必须以字母或者下划线开头; C语言中的保留字具有特殊意义,不能用作变量名称; C语言的变量名称区分大小写,例如:变量A与变量a是两个不同的变量。

相关主题
文本预览
相关文档 最新文档