C89,C99和固定长度整数int8_t等

参考一:http://hi.baidu.com/gaojinshan/item/29e5c8f6be290b0dd99e7215

0、C语言,1973年由Dennis M. Ritchie设计和实现。
1、K&R C。1978年由Kernighan和Ritchie合写的书《The C Programming Language》,形成了C语言的事实的标准,简称为K&R C。
2、ANSI CC89C90)。1989年,美国国家标准局(ANSI)颁布了第一个官方的C语言标准(X3.159-1989),简称为ANSI C或C89;1990年,它被国际标准化组织(ISO)采纳国际标准(ISO/IEC9899:1990),简称为C90。这个标准是目前广泛使用并完全支持的。
3、C99。199年,ISO/ANSI又推出了新的标准(ISO9899:1999),简称C99。这个标准目前支持的可能还不太全面。

C89/C90标准的指导原则是
1、相信程序员;
2、不妨碍程序员做需要完成的事情;
3、让语言保持短小简单;
4、只提供一种方法来执行一种操作;
5、使程序运行速度快,即使不能保证其可移植性。(不追求定义的抽象统一,更优先考虑运行效率)

C89/C90对K&R C的改变有
0、增加了函数原型(prototype),强调对函数的输入参数进行严格的类型检查;并补充定义了C语言的标准函数库
1、删除了关键字:entry(条目/入口)
2、增加了关键字:const(常型变量)、enum(枚举类型)、signed(有符号的,例如signed char)、void(空/无,可用于函数返回值和形参、通用指针类型)、volatile(易变变量,防止编译器错误的优化)
3、传递结构:允许将结构本身作为参数传递给函数(原来只允许传地址)
4、函数原型:增加了函数原型(便于编译器进行类型检查)
5、增加了预处理指令:#elif(else if)、#error(错误,强制编译停止)、#line(修改当前行号和源文件名)、#pragma(附注/编译指令,编译器定义的与实现有关的指令)
6、定义了固有宏:__LINE__(当前行号)、__FILE__(源文件名)、__DATE__(当前系统日期)、__TIME__(当前系统时间)、__STDC__(标准C版时为1)

C99的修订目标主要有三点
1、支持国际化编程,引入了支持国际字符集Unicode的数据类型和库函数;
2、修正原有版本的明显缺点。如整数的移植方法,例如int8_t、int16_t、int32_t和int64_t等类型;
3、针对科学和工程的需要,改进计算的实用性。例如添加了复数类型和新数学函数。


参考二:C99 standard
7.18.1.1 Exact-width integer types
1.  The typedef name int N_t designates a signed integer type with width N , no padding bits, and a two’s complement representation. Thus, int8_t denotes a signed integer type with a width of exactly 8 bits.

2.  The typedef name uintN_tdesignates an unsigned integer type with width N . Thus, uint24_t denotes an unsigned integer type with a width of exactly 24 bits.
3 .These types are optional. However, if an implementation provides integer types with widths of 8, 16, 32, or 64 bits, it shall define the corresponding typedef names.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值