3358 see.xidian.edu.cn/CPP/html/437.html

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

一、数据类型和“类型”

短、整型、长整型、字符、浮点型和双精度型六个关键字表示c语言的六种基本数据类型。

怎么理解呢? 举个例子,你见过藕豆炭的那个东西吧? 没见过吗? 你总见过煤球吧)。 它叫藕煤器,拿着它在一堆好煤球里发出这么咔嗒咔嗒的煤球。 半径12cm,12个孔。 根据尺寸的不同,莲藕炭器滴沥出来的煤球大小也不同,孔的数量也不同。 这个藕炭器其实是模子。

现在,我会联想到short、int、long、char、float、double这六个东东是不是和不同类型的莲藕炭器很像。 拿着它们咔嗒咔嗒的内存会分配不同大小的内存。 当然,别忘了给它取个好名字。

在32位系统中,short输出的内存大小为2个字节;

int输出的内存大小为4个字节;

long喀嚓一声出现的内存大小为4个字节;

float咔嗒一声输出的存储器大小为4个字节;

double喀嚓一声弹出的内存大小为8个字节;

char喀嚓一声出现的内存大小为字节。

(请注意,这里指的是一般情况,可能因平台而异。 具体平台请用sizeof关键字测试一下)

很简单吧? 咔嗒咔嗒很爽吧? 很简单,确实很爽,但问题是你咔嚓一下说出这么多内存块,你不能给他起名叫x1、x2、x3、x4、x5…或者长江1号、长江2号…吧。 这些如此相似。 (你家老板,老二,xndjz…)。 过了一会儿,你就会忘记哪个名字和哪个内存块匹配。 )到底是谁和谁结婚的呢? ^_^ )。 所以,给他们取个好名字绝对重要。 让我们讨论一下该起什么名字。

二、变量命名约定

1、命名可以直观拼写,有望了解文意,便于记忆和阅读。

标识符最好采用英语单词或其组合,不能使用拼音。 程序中的英语单词一般不太复杂,必须正确使用。

2、命名长度必须符合“最小长度最大信息”原则。

C是一种简洁的语言,命名也必须简洁。 例如,变量名MaxVal比MaxValueUntilOverflow更容易使用。 标识符的长度一般不要长。 长单词可以通过去掉“元音”来缩写。

另外,尽量不要省略英语单词。 不是特别常用的专业名词。 如果有缩写,则必须在同一系统中对同一单词使用相同的标记法并注明其含义。

3、当标识符由多个单词组成时,每个单词的第一个字母是大写,其余都是小写。 例如:

int CurrentVal;

这样的名字看起来比较清楚,比长字符串好得多。

4、除非逻辑上需要号码,如Value1、Value2等,否则名称中不要出现数字号码。 例如,如果在开发驱动程序时为管脚命名,则除了编号以外的名称反而不好。

初学者总是喜欢使用有编号的变量名或函数名,这个样子看起来简单方便,其实是定时炸弹。 这个习惯初学者一定要改掉。

5、建议对多个文件之间共同使用的全局变量或函数附加范围修饰符(模块名称,作为范围修饰符)。

(GUI_,etc )标识符命名约定:

6、标识符名称分为两部分:规范标识符前缀(后缀)语义标识。 非全局变量可以不使用范围修饰符前缀。

7、作用域前缀命名约定。

8、数据类型前缀命名约定。

9、语义标识命名约定,变量命名使用名词性短语,函数命名使用动词性短语。 例如:

语义标识符的构成:宾语动词(的过去分词);状语) ) (目的地);

语义标识符的构成:动词(一般现在)宾语(状语) (目的地);

10、程序中不能出现只区分大小写的相似标识符。 例如:

int x,x; 变量x和x容易混淆

语音福克斯(intx ); 函数foo和foo容易混淆

语音福克斯(Floatx );

此处需要注意的另一点是,1 (数字1 )和l (小写字母l )之间的差异,0 )数字0 )和o (小写字母o )之间的差异。 这两组真的很难区分。 我曾经的同事被这个问题折腾了一次。

11、禁止一个函数名用于其他地方。 例如:

#include ‘c_standards.h ‘

voidfoo(intp_1) )。

{

int x=p_1;

}

Void静态_ p (Void )

{

int foo=1u;

}

12、宏定义、枚举常量、只读变量均以大写字母命名,下划线分割单词。 例如:

常数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、不同类型数据之间的运算要注意精度扩展的问题,一般低精度数据可以扩展到高精度数据。