c语言经典源码大全

c语言经典源码大全

ID:11237897

大小:274.00 KB

页数:59页

时间:2018-07-10

c语言经典源码大全_第1页
c语言经典源码大全_第2页
c语言经典源码大全_第3页
c语言经典源码大全_第4页
c语言经典源码大全_第5页
资源描述:

《c语言经典源码大全》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【新标准】  在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C++继续在改进。(实际上,NormativeAmendment1在1995年已经开发了一个新的C语言版本。但是这个版本很少为人所知。)标准在90年代才经历了改进,这就是ISO9899:1999(1999年出版)。这个版本就是通常提及的C99。它被ANSI于2000年3月采用。  在C99中包括的特性有:  对编译器限制增加了,比如源程序每行要求至少支持到4095字节,变量名函数名的要求支持到63字节(extern要求支持到31)  预处理

2、增强了。例如:  宏支持取参数#defineMacro(...)__VA_ARGS__  使用宏的时候,参数如果不写,宏里用#,##这样的东西会扩展成空串。(以前会出错的)  支持//行注释(这个特性实际上在C89的很多编译器上已经被支持了)  增加了新关键字restrict,inline,_Complex,_Imaginary,_Bool  支持longlong,longdouble_Complex,float_Complex这样的类型  支持<::><%%>%:%:%:,等等奇怪的符号替代  支持了不定长的数组。数

3、组的长度就可以用变量了。声明类型的时候呢,就用inta[*]这样的写法。不过考虑到效率和实现,这玩意并不是一个新类型。所以就不能用在全局里,或者structunion里面,如果你用了这样的东西,goto语句就受限制了。  变量声明不必放在语句块的开头,for语句提倡这么写for(inti=0;i<100;++i)就是说,inti的声明放在里面,i只在for里面有效。(VC没有遵守这条标准,i在for外也有效)  当一个类似结构的东西需要临时构造的时候,可以用(type_name){xx,xx,xx}这有点像C++的构造

4、函数  初始化结构的时候现在可以这样写:  struct{inta[3],b;}hehe[]={[0].a=,[1].a=2};  struct{inta,b,c,d;}hehe={.a=1,.c=3,4,.b=5}//3,4是对.c,.d赋值的  字符串里面,u支持unicode的字符  支持16进制的浮点数的描述  所以printfscanf的格式化串多支持了ll/LL(VC6里用的I64)对应新的longlong类型。  浮点数的内部数据描述支持了新标准,这个可以用#pragma编译器指定  除了已经有的__l

5、ine____file__以外,又支持了一个__func__可以得到当前的函数名  对于非常数的表达式,也允许编译器做化简  修改了对于/%处理负数上的定义,比如老的标准里-22/7=-3,-22%7=-1而现在-22/7=-4,-22%7=6  取消了不写函数返回类型默认就是int的规定  允许struct定义的最后一个数组写做[]不指定其长度描述  constconstinti;将被当作constinti;处理  增加和修改了一些标准头文件,比如定义bool的定义一些标准长度的int的

6、types.h>定义复数的定义宽字符的有点泛型味道的数学函数跟浮点数有关的里多了一个va_copy可以复制...的参数。里多了个structtmx对structtm做了扩展  输入输出对宽字符还有长整数等做了相应的支持  相对于c89的变化还有  1、增加restrict指针  C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的唯一途径,因此只有借助restrict指针表达

7、式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函数所分配的内存变量。restrict数据类型不改变程序的语义。  如果某个函数定义了两个restrict指针变元,编译程序就假定它们指向两个不同的对象,memcpy()函数就是restrict指针的一个典型应用示例。C89中memcpy()函数原型如下:  代码:void*memcpy(void*s1,constvoid*s2,size_tsize);  如果s1和s2所指向的对象重叠,其操作就是未定义的。memcpy()函数只能用于

8、不重叠的对象。C99中memcpy()函数原型如下:代码:void*memcpy(void*restricts1,constvoid*restricts2,size_tsize);  通过使用restrict修饰s1和s2变元,可确保它们在该原型中指向不同的对象。  2、inline(内联)关键字  内联函数除了保持结构化和函数式

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。