易截截图软件、单文件、免安装、纯绿色、仅160KB

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。
规定字符串常量是不可修改的。
改变了算术类型的隐含转换规则。
删去了一些过时赋值运算符,如 =+。规定赋值运算符都是基本单词,如 += 之间不能有空格分隔。
引进了与一元 - 运算符对应的一元 + 运算符。


相关文档:

ARM第一个项目中关于C的总结

1:每一个变量在使用前都得声明,不然在使用的时候就有可能是随机的数字
2:注意头文件中函数声明的时候要在后面加上分号
3:注意串口可以打印变量,就像C中的printf一样
4:DNW中不能打印float型数据
5:注意结构体指针数组 的使用和调用
6: ......

C51: MIXING C AND ASSEMBLY

以下全文转载自http://www.keil.com/support/docs/1671.htm                     Copyright © 2010 Keil™, An ARM® Company.
Information in this article applies to:
C51 Version 6.02
&mi ......

C51: CALLING ASSEMBLY ROUTINES from C

以下全文转载自http://www.keil.com/support/docs/50.htm                            Copyright © 2010 Keil™, An ARM® Company.
Information in this ar ......

C/C++语言编程修养1(转)

什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?
我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对
于速度快,只要编得多也就熟能生巧了。
 
我认为好的程序员应该有以下几方面的素质:
 
  1、有专研精神,勤学善问、举一反 ......

定义C/C++全局变量/常量几种方法的区别

在讨论全局变量之前我们先要明白几个基本的概念:
1. 编译单元(模块):
    在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用g ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号