欢迎来到天天文库
浏览记录
ID:34722478
大小:121.68 KB
页数:17页
时间:2019-03-10
《c语言32个关键字详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C语言中32个关键字详解由ANSI标准定义的C语言关键字共32个:autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilestatic根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。1数据类型关键字A基本数据类型(5个)void:声明函数无返回值或无参数,声明
2、无类型指针,显式丢弃运算结果char:字符型类型数据,属于整型数据的一种int:整型数据,通常为编译器指定的机器字长float:单精度浮点型数据,属于浮点数据的一种double:双精度浮点型数据,属于浮点数据的一种B类型修饰关键字(4个)short:修饰int,短整型数据,可省略被修饰的int。long:修饰int,长整形数据,可省略被修饰的int。signed:修饰整型数据,有符号数据类型unsigned:修饰整型数据,无符号数据类型C复杂类型关键字(5个)struct:结构体声明union:共用体声明enum:枚举声明typedef:声明
3、类型别名sizeof:得到特定类型或特定类型变量的大小D存储级别关键字(6个)auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明的韵蟮囊桓觥耙谩?const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(
4、但有可能被系统或其他线程/进程改变)volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值2流程控制关键字A跳转结构(4个)return:用在函数体中,返回特定值(或者是void值,即不返回值)continue:结束当前循环,开始下一轮循环break:跳出当前循环或switch结构goto:无条件跳转语句B分支结构(5个)if:条件语句else:条件语句否定分支(与if连用)switch:开关语句(多重分支语句)case:开关语句中的分支标记default:开关语句
5、中的“其他”分治,可选。C循环结构(3个)for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件do:do循环结构,do1while(2);的执行顺序是1->2->1...循环,2为循环条件while:while循环结构,while(1)2;的执行顺序是1->2->1...循环,1为循环条件以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。C99和C89标准对比多了些什么1、restrict:指针类型修饰符C99中增加了公适用于指针的restrict类型修饰符,它是初始访
6、问指针所指对象的惟一途径,因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量。restrict数据类型不改变程序的语义。 如果某个函数定义了两个restrict指针变元,编译程序就假定它们指向两个不同的对象,memcpy()函数就是restrict指针的一个典型应用示例。C89中memcpy()函数原型如下:代码:----------------------------------------------------------------------
7、---------- void*memcpy(void*s1,constvoid*s2,size_tsize);-------------------------------------------------------------------------------- 如果s1和s2所指向的对象重叠,其操作就是未定义的。memcpy()函数只能用于不重叠的对象。C99中memcpy()函数原型如下:代码:------------------------------------------------------------------
8、-------------- void*memcpy(void*restricts1,constvoid*restricts2,size_tsize);---
此文档下载收益归作者所有