什么是ANSI C,c++ ansi

  什么是ANSI C,c++ ansi

  C-K R C和ANSI C的区别-黄Jacky-博客花园

  CK R C和ANSI C的区别最近看了《C和指针》这本书,里面多次提到K R C。我们经常听说ANSI C,但是这个不是很清楚。我特意去百度了一下,做了如下记录。

  c语言是由Dennis M. Ritchie在1973年设计并实现的。此后用户逐渐增多。到1978年,Ritchie和贝尔实验室的另一位程序专家Kernighan合作编写了著名的《The C Programming Language》,向世界介绍了C语言。很多国家都出版了译本,国内的一些C语言书籍就是这本书的译本或编译本。这本书定义的C语言后来被称为K R C。

  随着C语言的使用越来越广泛,出现了许多新的问题,人们对C语言的标准化要求越来越高。这项标准化工作是在美国国家标准协会(ANSI) (1983-1988)的框架下进行的,最终成果是ANSI标准X3.159-1989,后来被称为ANSI C标准。这个标准定义的C语言称为ANSI C。

  Ansi标准很快被采纳为国际标准和国家标准。国际标准是ISO/IEC 9899-1990,中国国家标准GB/T 15272-94是国际ISO标准的中文翻译。

  ANSI标准化工作的主要目标之一是消除原C语言中不安全、不合理、不准确和不完善的东西。所以也就产生了ANSI C和K R C的区别。总的来说,这些差异体现了C语言的完善和成熟。

  K R C的C ANSI修订版(本段根据《C Programming Language》和C语言标准编写。对于源文件中的标识符,有效的最小长度扩展到31个字符。连接文件时,标识符的最小有效长度仍然是6个字符。(许多实现支持更大的长度。)新增了几个关键词:void、const、volatile、signed、enum。抛弃了旧的关键字条目。在字符\后写一个不规则序列,其作用确定为未定义。8和9都不是八进制数的合法字符。介绍了数字的后缀字符:整数的U和L,浮点数的F和L。规定连续出现的字符串常量会拼接在一起。引入了“宽字符”的概念。字符也被确定为有符号的和无符号的。Long float(以前是double的同义词)被抛弃了。引入了void类型,用(void*)表示通用指针的类型(过去人们通常用(char*))。最小表示范围是为算术类型指定的。每个C语言系统都要求使用头文件(limits.h和float.h)来解释实现中的具体规定。引入了枚举定义enum。采用了来自C的类型修饰符,比如const。指定不能修改字符串常量。更改了算术类型的隐式转换规则。一些过时的赋值运算符,如=,已被删除。规定赋值运算符都是基本词,比如=不能用空格隔开。引入了与一元算子相对应的一元算子。指向函数的指针可以直接放在调用函数的位置,不需要显式编写间接操作。允许结构的整体赋值,并将其作为函数参数和返回值传递。允许地址操作符作用于数组,就获得了指向相关数组的指针。规定标准sizeof运算符的返回值是size_t类型(无符号整数),在标准头文件stddef.h中定义,同时在那里定义了ptrdiff_t类型,是指针减法的结果类型。指定的地址提取运算符不能作用于寄存器变量。指定移位表达式的类型是其左操作数的类型。允许建立指向数组最后一个元素位置的指针,并对其执行算术和关系运算。(3)引入了函数原型的概念,包括参数类型和变长参数表函数。旧的形式仍然允许,但只是作为过时的形式保留。标准规定任何局部声明的作用域都只是当前块(复合语句)。函数参数被指定为添加到函数体的声明(复合语句),因此它们不能被变量声明覆盖。关于命名空间的规定:所有的结构、联合和枚举都在一个命名空间中标记,标签是另一个命名空间。关节变量也可以在定义时初始化,它的第一个组件被指定要初始化。自动结构、联合和数组也可以初始化,但它们的初始化方法是有限的(只能包含常量表达式)。带大小描述的字符数组也可以用相同大小的字符串常量初始化(删除结尾\0)。开关的控制表达式和case标签可以是任意整数(包括字符类型)。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: