本文目录一览:
c与c++语言编译器是如何识别关键字
根据编译器的不同,有不同的识别方式,例如VC6.0使用系统内建关键字列表,如果用户定义变量的时候使用了系统默认的关键字,则会在编译的时候产生错误。
附上:
C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。
1 数据类型关键字(12个):
(1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明联合数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
(2)控制语句关键字(12个):
A循环语句
(1) for:一种循环语句(可意会不可言传)
(2) do :循环语句的循环体
(3) while :循环语句的循环条件
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
B条件语句
(1)if: 条件语句
(2)else :条件语句否定分支(与 if 连用)
(3)goto:无条件跳转语句
C开关语句
(1)switch :用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
D
return :子程序返回语句(可以带参数,也看不带参数)
3 存储类型关键字(4个)
(1)auto :声明自动变量 一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4)static :声明静态变量
4 其它关键字(4个):
(1)const :声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用
(4)volatile:说明变量在程序执行中可被隐含地改变
c语言定义函数它只识别数字吗
C源程序是由函数组成的。最简单的程序有一个主函数 main(),但实用程序往往由多个函数组成,由 主函数调用其他函数,其他函数也可以互相调用。函数是C源程序的基本模块,程序的许多功能是通过对 函数模块的调用来实现的,学会编写和调用函数可以提高编程效率。
函数的定义通常包含以下内容:
返回值类型 函数名(形参表说明) /*函数首部*/
{
说明语句 /*函数体*/ 报考指南
执行语句
}
对上面的定义形式进行以下说明:
(1)“返回值类型”是指函数返回值的类型。函数返回值不能是数组,也不能是函数,除此之外任何合法的数据类型都可以是函数的类型,如:int,long,float,char 等。函数类型可以省略,当不指明函数类型时,系统默认的是整型。
(2)函数名是用户自定义的标识符,在 C 语言函数定义中不可省略,须符合 C 语言对标识符的规范, 用于标识函数,并用该标识符调用函数。另外函数名本身也有值,它代表了该函数的入口地址,使用指针 调用函数时,将用到此功能。
(3)形参又称为“形式参数”。形参表是用逗号分隔的一组变量说明,包括形参的类型和形参的标识 符,其作用是指出每一个形参的类型和形参的名称,当调用函数时,接收来自主调函数的数据,确定各参 数的值。
(4)用{ }括起来的部分是函数的主体,称为函数体。函数体是一段程序,确定该函数应完成的规定的 运算,应执行的规定的动作,集中体现了函数的功能。函数内部应有自己的说明语句和执行语句,但函数 内定义的变量不可以与形参同名。花括号{ }是不可以省略的。
根据函数定义的一般形式,可以定义一个最简单的函数:
这是 C 语言中一个合法的函数,函数名为 add。它的函数返回值为int,没有形参表,同时函数体内只有一条因为返回值为int而必须有的返回值语句。实际上函数 add 不执行任何操作和运算,它是一个空函数,在一般情况下是没有用途的,但 在程序开发的过程中有时是需要的,常用来代替尚未开发完毕的函数。
计算机如何识别整型和浮点型
1楼的在胡扯。32位的就是浮点型么??。32位系统中,整型就是32位的,浮点型是64位的。
事实上,计算机根本无法识别是什么类型。在汇编层,数据本来也无“类型”可言,关键看程序怎么去处理数据。如果程序设计者把这段32位的内存块当作一个整型,那么它就是整型,如果当作一个串(比如4个元素的单字节的数组),那么它就是一个串。。
----------------------------------
就是说。计算机看待内存本来是没有数据类型的,他只知道,内存是一字节一字节的....数据类型是人为的划分,是程序员定义的。
比如: int a;
char b[4];
wchar c[2];
上面的代码,在32位系统中,他们都是定义一块内存,大小都是4个字节,对于计算机来说,他们事实上没有任何区别,但是对于程序员来说,他们的区别很大。
当访问时:
a = 0;
b[0] = 'a', b[1] = 'b', b[2] = 'c', b[3] = 0;
c[0] = L'a', c[1] = L'b';
在C语言中,他们是有区别的,如上。
但是在汇编层他们都会被翻译成如下形势的代码:
MOV [ DDD + XXX ], YYY
如果代码在某函数中,DDD是堆栈指针,XXX是便宜,YYY是操作数。
----------------------------
你可以做一下这样的测试(把一个整型值当作一个字符串来打印)
int a = 0;
a = ( (int)'a' 24 ) + ( (int)'b' 16 ) + ( (int)'c' 8 );
printf(( char * ) a );