4、定义变量名(标识符)的注意点: 1)不要使用预处理命令标识符作为变量名。 例: include、 define、 undef、 ifdef、 ifndef、 endif、 ine等 2)不能用已被C系统赋予特殊意义的标识符(关键字 作为变量名。C定义的关键字:[见教材附录P375] 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
11 2)不能用已被C系统赋予特殊意义的标识符(关键字) 作为变量名。C 定义的关键字:[见教材附录P375] 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 4、定义变量名(标识符)的注意点: 1)不要使用预处理命令标识符作为变量名。 例:include、define、undef、ifdef、ifndef、endif、 line等
3)不要使用C系统的库函数名作为变量名。 例: printf、 scanf等。详见教材[附录VP381]。 其实C语言系统允许使用系统的库函数名作为变量名, 并不会产生语法错误,但会发生含义看盖,失去原来的 定义。除非你在程序中不使用该函数,因此不宜使用 4)选择变量名应注意到“见名知意”,选用有意义的变量名。 例如: IntCount、 CharName、 StudentNumber 通常使用两种命名方法: ①匈牙利命名法 若干个英文单词组成,每个单词首字母大写,标识符 前面的若千字符表示数据类型。 ②使用有含义的英文单词或汉语拼音。 12
12 ② 使用有含义的英文单词或汉语拼音。 3)不要使用C系统的库函数名作为变量名。 例:printf、scanf 等。详见教材[附录Ⅴ P381]。 其实C语言系统允许使用系统的库函数名作为变量名, 并不会产生语法错误, 但会发生含义覆盖, 失去原来的 定义。除非你在程序中不使用该函数,因此不宜使用。 4)选择变量名应注意到“见名知意” ,选用有意义的变量名。 例如:IntCount、CharName 、StudentNumber 通常使用两种命名方法: ① 匈牙利命名法 若干个英文单词组成,每个单词首字母大写,标识符 前面的若干字符表示数据类型
5)因C标准没有规定标识符的长度。各个编译系统有自己的 规定。如: MSC8个字符 Turbo C32个字符 若程序中的变量名长度大于本系统规定的长度,则只 有前面一些字符有效,后面的不被识别。 如对于下列两个标识符: student name 5 student number 由于前8个字符相同,在MSC系统中则认为这两个标 识符是一样的,不能用来代表两个不同的对象。为提高程 序的可移植性,应尽量使用较短的标识符。 13
13 若程序中的变量名长度大于本系统规定的长度,则只 有前面一些字符有效,后面的不被识别。 如对于下列两个标识符: student_name 与 student_number 由于前8个字符相同,在MSC 系统中则认为这两个标 识符是一样的,不能用来代表两个不同的对象。为提高程 序的可移植性,应尽量使用较短的标识符。 5)因C 标准没有规定标识符的长度。各个编译系统有自己的 规定。如: MSC 8个字符 Turbo C 32个字符
6)C函数库中通常使用一个或两个下划线开始的标识 符(如_kcab),(标准称这样的标识符为保留字 (保留给系统使用的)。虽然可使用这样的标识符 但可能导致名字的混乱,最好避兔。 7)符号常量名也是标识符,因此符号常量的命名也按 标识符规则确定
14 6) C函数库中通常使用一个或两个下划线开始的标识 符(如 _ _ kcab) , C标准称这样的标识符为保留字 (保留给系统使用的)。虽然可使用这样的标识符, 但可能导致名字的混 乱,最好避免。 7)符号常量名也是标识符,因此符号常量的命名也按 标识符规则确定
5、变量的存储与地址 变量存储在主存储器中,也可指定存放到寄存器中。 但不能指定具体的存放位置。因此,一个变量总是与一定 数量的存储单元相关联。 不同类型的变量占用的存储单元的多少不同,这由C 编译系统按变量的类型进行分配。 变量名代表它所占用的存储空间,及代表该存储空间 中存储的内容,并不代表它的存储起始位置(地址)。 要获得它的存储地址可用C的地址运算符&,通过地 址运算获得。例如:要得到变量val的起始存储地址,可 通过计算&val而获得。 15
15 5、变量的存储与地址 变量存储在主存储器中 , 也可指定存放到寄存器中。 但不能指定具体的存放位置。因此, 一个变量总是与一定 数量的存储单元相关联。 不同类型的变量占用的存储单元的多少不同,这由C 编译系统按变量的类型进行分配。 变量名代表它所占用的存储空间,及代表该存储空间 中存储的内容, 并不代表它的存储起始位置(地址)。 要获得它的存储地址可用C的地址运算符& , 通过地 址运算获得。 例如: 要得到变量val 的起始存储地址,可 通过计算&val 而获得