C 语言包含的数据类型如下图所示:

一、数据类型与“模子”
short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。

怎么去理解它们呢? 举个例子:见过藕煤球的那个东西吧?(没见过?煤球总见过吧)。那个东西叫藕煤器,拿着它在和好的煤堆里这么一咔,一个煤球出来了。半径12cm,12 个孔。不同型号的藕煤器咔出来的煤球大小不一样,孔数也不一样。这个藕煤器其实就是个模子。

现在我们联想一下,short、int、long、char、float、double 这六个东东是不是很像不同类型的藕煤器啊?拿着它们在内存上咔咔咔,不同大小的内存就分配好了,当然别忘了给它们取个好听的名字。

在32 位的系统上short 咔出来的内存大小是2 个byte;
int 咔出来的内存大小是4 个byte;
long 咔出来的内存大小是4 个byte;
float 咔出来的内存大小是4 个byte;
double 咔出来的内存大小是8 个byte;
char 咔出来的内存大小是1 个byte。
(注意这里指一般情况,可能不同的平台还会有所不同,具体平台可以用sizeof 关键字测试一下)

很简单吧?咔咔咔很爽吧?是很简单,也确实很爽,但问题就是你咔出来这么多内存块,你总不能给他取名字叫做x1,x2,x3,x4,x5…或者长江1 号,长江2 号…吧。它们长得这么像(不是你家的老大,老二,老三…),过一阵子你就会忘了到底哪个名字和哪个内存块匹配了(到底谁嫁给谁了啊?^_^)。所以呢,给他们取一个好的名字绝对重要。下面我们就来研究研究取什么样的名字好。

二、变量的命名规则
1、命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。

2、命名的长度应当符合“min-length && max-information”原则。
C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。

另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。

3、当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。 比如:
   int CurrentVal;
这样的名字看起来比较清晰,远比一长串字符好得多。

4、尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。 比如驱动开发时为管脚命名,非编号名字反而不好。
初学者总是喜欢用带编号的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸弹。这个习惯初学者一定要改过来。

5、对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符)。
(GUI_ ,etc)标识符的命名规则:

6、 标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。非全局变量可以不用使用范围限定符前缀。

7、作用域前缀命名规则。

8、数据类型前缀命名规则。

9、含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组。 例如:

变量含义标识符构成:目标词+ 动词(的过去分词)+ [状语] + [目的地];

函数含义标识符构成:动词(一般现时)+目标词+[状语]+[目的地];

10、程序中不得出现仅靠大小写区分的相似的标识符。 例如:
   int x, X; 变量x 与X 容易混淆
   void foo(int x); 函数foo 与FOO 容易混淆
   void FOO(float x);
这里还有一个要特别注意的就是1(数字1)和l(小写字母l)之间,0(数字0)和o(小写字母o)之间的区别。这两对真是很难区分的,我曾经的一个同事就被这个问题折腾了一次。

11、一个函数名禁止被用于其它之处。 例如:
#include "c_standards.h"
void foo(int p_1)
{
   int x = p_1;
}
void static_p(void)
{
   int foo = 1u;
}

12、所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。 例如:
const int MAX_LENGTH = 100; //这不是常量,而是一个只读变量,具体请往后看
   #define FILE_PATH “/usr/tmp”

13、考虑到习惯性问题,局部变量中可采用通用的命名方式,仅限于n、i、j 等作为循环变量使用。
一定不要写出如下这样的代码:
   int p;
   char i;
   int c;
   char * a;
一般来说习惯上用n,m,i,j,k 等表示int 类型的变量;c,ch 等表示字符类型变量;a 等表示数组;p 等表示指针。当然这仅仅是一般习惯,除了i,j,k 等可以用来表示循环变量外,别的字符变量名尽量不要使用。

14、定义变量的同时千万千万别忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据。 这个问题在内存管理那章有非常详细的讨论,请参看。

15、不同类型数据之间的运算要注意精度扩展问题,一般低精度数据将向高精度数据扩展。

c语言数据类型及命名规则相关推荐

  1. 用户标识符C语言规则,c语言用户标识符命名规则是什么?_后端开发

    PHP Xdebug 是什么?_后端开发 Xdebug是一个开源的PHP程序调试工具,可以使用它来调试.跟踪及分析PHP程序运行状态,该工具需要配合编辑器来打断点.跟踪.调试及分析等,支持Xdebug ...

  2. c语言规定 标识符由,【填空题】C语言的标识符命名规则规定标识符可以由字母数字和下划线组成,首字符不能是 。 (4.0分)...

    [填空题]C语言的标识符命名规则规定标识符可以由字母数字和下划线组成,首字符不能是 . (4.0分) 更多相关问题 鱼苗池的选择要利于鱼苗生长.利于饲养管理和()A. 鱼苗游动B. 水生生物生长C. ...

  3. c语言中分析变量名的组成规则,C语言变量的命名规则

    一般规则: [规则1-1]命名应当直观且可以拼读,可望文知意,便于记忆和阅读, 标识符最好采用英文单词或其组合,不允许使用拼音.程序中的英文单词一般不要太复杂,用词应当准确. [规则1-2]命名的长度 ...

  4. c语言规定标识符 字符串,c语言中标识符命名规则是怎样的

    一).变量类型和表示方法 1.什么是变量? 一句话,变量是存储数据的值的空间.由于数值的类型有多种,有整数.小数(浮点数).字符等等,那么对应的变量就有整型变量.浮点型变量.字符型变量.变量还有其他的 ...

  5. C语言用不同字体标识,c语言中标识符命名规则是怎样的

    一).变量类型和表示方法 1.什么是变量? 一句话,变量是存储数据的值的空间.由于数值的类型有多种,有整数.小数(浮点数).字符等等,那么对应的变量就有整型变量.浮点型变量.字符型变量.变量还有其他的 ...

  6. c语言变量名下表,C语言变量名命名规则

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

  7. 【基础篇】各类语言的变量命名规则

    ----------------------------------------------JAVA----------------------------------------------- JA ...

  8. c语言头文件命名规则,C语言头文件规则.doc

    C语言头文件规则.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得收 ...

  9. PFC的数据类型及命名规则

    一.对象名称定义      pfcobject_type_objectname 其中,pfcobject 为 PFC_时,表示为PFC级别,否则为PFE级别(扩展级别) type包含以下类型: 类型 ...

最新文章

  1. java两个线程循环打印_java循环打印 多线程
  2. .net转换关键字:operator、explicit与implicit
  3. CTF(Pwn) 当题目为我们提供Libc版本.so文件, 与 不提供的区别
  4. 第3讲--3.1旋转矩阵
  5. VTK:vtkAreaPicker用法实战
  6. oracle 查找 psu,Oracle如何检查当前数据库CPU和PSU补丁信息
  7. 怎么导入sklearn包_4.5包
  8. 计算机生物模拟试题,2017年高考理综生物部分模拟试题
  9. Hadoop 集群的基准测试
  10. ActivityGroup详解
  11. 计算机网络之网络安全基础-网络安全协议
  12. VM虚拟机安装Windows XP Service Pack 3 (x86)
  13. 容器镜像仓库Harbor安装部署及简单使用
  14. matlab平稳性检验
  15. 关于牛顿迭代求根的笔记
  16. 声声慢 - 程序人生(程序员生活的真实写照)
  17. 什么是云监控,云监控工具
  18. 【软件测试】公司招个测试员,我又面试了100多人,结局......
  19. python一对一辅导教程:PyGeM Tutorials 解析 1
  20. 机器学习笔记--神经网络--Rosenblatt

热门文章

  1. 一本计算机专业啥也不会怎么办?IT大厂实习如何进?
  2. 核心交换机相关技术参数详解
  3. 通过串口打印DS18B20采集到的温度
  4. python 文件格式转换器_python文件格式转换
  5. 作为测试人员,你需要掌握哪些,常用软件测试工具?
  6. 好用的时间管理工具:Eon Timer for Mac(2.8.14中文)
  7. Notepad++ 出现中文乱码,修改编码格式解决不了,修改字体可以
  8. 机器学习建模案例-人力资源分析
  9. 【每日一篇】LinkedList详解
  10. BugTags配置自动上传符号表