c语⾔基本数据类型short、int、long、char、float、double⼤⼩
及命名规则
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、不同类型数据之间的运算要注意精度扩展问题,⼀般低精度数据将向⾼精度数据扩展。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论