ANSI C 与 K&R C
C语言由Dennis M. Ritchie在1973年设计和实现。从那以后使用者逐渐增加。到1978年Ritchie和Bell实验室的另一位程序专家Kernighan合写了著名的《The C Programming Language》,将C语言推向全世界,许多国家都出了译本,国内有一些C语言书就是这本书的翻译或者编译。由这本书定义的C语言后来被人们称作 K&R C。
随着C语言使用得越来越广泛,出现了许多新问题,人们日益强烈地要求对C语言进行标准化。这个标准化的工作在美国国家标准局(ANSI)的框架中进行(1983-1988),最终结果是1988年10月颁布的ANSI标准X3.159-1989,也就是后来人们所说的ANSI C标准。由这个标准定义的C语言被称作ANSI C。
ANSI C标准很快被采纳为国际标准和各国的标准。国际标准为ISO/IEC 9899-1990,中国国家标准GB/T 15272-94是国际ISO标准的中文翻译。
ANSI C标准化工作的一个主要目标是清除原来C语言中的不安全、不合理、不精确、不完善的东西。由此也产生了ANSI C与K&R C之间的差异。从总体上看,这些差异反应的是C语言走向完善、走向成熟。
ANSI C 对 K&R C 的修订
(本段根据《C Programming Language》和C语言标准整理。不求完整,希望列出最常见的差异)
对于源文件内部的标识符,有效的最小长度扩充到31个字符。文件间连接时,标识符的最小有效长度仍然为6个字符。(许多实现都支持更大的长度)
增加了几个新关键字:void,const,volatile,signed,enum。抛弃了老关键字entry。
在换意字符 \ 之后写非规定的序列,其作用确定为无定义。
规定8和9都不是八进制数的合法字符。
引进了数的后缀字符:整数的U和L,浮点数的F和L。
规定连续出现的字符串常量将被拼接在一起。
引进了“宽字符”的概念。
将字符也确定为带符号(signed)和不带符号(unsigned)的。
丢弃了long float(原来作为double的同义词)。
引入了void类型,用 (void*) 表示通用指针的类型(过去人们通常用 (char*))。
对算术类型规定了最小表示范围。要求每个C语言系统用头文件(<limits.h>和<float.h>)说明实现中的具体规定。
引进了枚举定义enum。
采用了来自C++的类型修饰符,如const。
规定字符串常量是不可修改的。
改变了算术类型的隐含转换规则。
删去了一些过时赋值运算符,如 =+。规定赋值运算符都是基本单词,如 += 之间不能有空格分隔。
引进了与一元 - 运算符对应的一元 + 运算符。
相关文档:
转贴自:http://blog.sina.com.cn/s/blog_629562fe0100gs2l.html
稍作修改
gSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows、Linux、MAC OS和UNIX下使用C和C++语言编码,集成了SSL功能。
下载地址:http://sourceforge.net/projects/gsoap2
官方网站:http://genivia.com/Products/g ......
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计 ......
只是有人牵涉到写程序的,我就说说.女主角如果不出来澄清就一辈子被毁了.校风严谨的清华也有这种滥S的行为有点不可思意.找程序员写作业只是个分手的借口吧.女主角还瞒清秀的.出来讨债的"冤大头"其实也不理智,毁了前女友的幸福很好吗?
但愿C语言门只是个娱乐 ......
C/C++中的字符串问题在网上的讲解一向非常含糊,存在各个层次的库混用、滥用的情况,尤其是宽字符与窄字符等问题很难找到有效的资料,本篇随笔分享一下我长期收集到的一些比较准确的资料以及据此得到的个人理解.
C语言中的字符串
C语言中提供了两种字符类型char和wchar_t,C语言使用字符数组来表示字符串,同时支持两种直 ......
在讨论全局变量之前我们先要明白几个基本的概念:
1. 编译单元(模块):
在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用g ......