读“前50页中的错误分析”有感

T老先生的真正错误应该是这几个:
1.  关于ANSI C的介绍:1983年。。。制定了新标准,称为ANSI C。K&R在1988年修改了他们的名著(。。第二版)。1987年,ANSI 又公布了新标准----87 ANSI C。1990年国际标准化组织ISO接受87 ANSI C为ISO C的标准。1994年,ISO修改了C语言标准。-----这是T先生2005年的第三版上的文字(后面的内容都以2005年的第三版为例)。
   关于ANSI C除了T老先生的说法,别的书上(中和外)都说:ANSI 在1983年设立了一个委员会以发展(译为开发更好)一个新标准,该标准于1989年正式采用。。。。国际标准化组织于1990年采用一个C标准(ISO C)。ISO C和ANSI C实质上是同一个标准。ANSI/ISO标准最终版本通常被称为C89或C90.。。。1994年,修订标准的工作开始了,这一努力的结果是产生了C99标准。----这是C Primer Plus(第五版)中文版的内容。
   T老先生来了个超时空转换。
2.关于switch语句:T老先生写到:
  它的一般形式如下:
   switch(表达式)
    {
     case 常量表达式1:   语句1
     case 常量表达式2:   语句2
       .
       。
    case 常量表达式n:   语句n
     default:                     语句n+1
    }
    ...
  说明:
  (1)switch后面括号内的”表达式“,ANSI C标准允许它为任何类型。
  。。。
  这里有两个大问题:case子句中的语句应该是语句序列(或称语句组),switch后面括号内的”表达式“,ANSI C标准只允许它为与整类型兼容的类型。T老先生的又一个超时空转换。翻番他的第一版“switch后面括号内的”表达式“,可以是整型表达式或字符型,也可以是枚举类型数据(见第十章)。对其它类型,原来的C标准是不允许的,而新的ANSI C标准允许上述表达式和case常量表达式为任何类型。”-----不用我再说了吧----与时俱进,不会将正确的又改成错误的吧?!----这个新的ANSI C是哪里来的啊?
3.关于void指针类型
  “也可以将一个函数定义为void*类型,例如:
    void* fun(char...)
  表示函数fun返回的是一个地址,它指向”空类型“,。。。”
  void在K&R的书明确指示为nonexistent(不存在),而Pointers to Void(即void*)的含义绝对不是指向“不存在”,而是泛类型或通用类型指针。
4.关于函数的返回值
  (4)对于不带回值的函数,应当用“void“定义函数为”无类型“(或称”空类型“)。。。。此时在函数体中不得出现return语句。
   ----------return;不允许吗?
5.关于函数原型:
  。。。一般形式有两种,分别为
  (1)函数类型 函数名(参数类型1,参数类型2,。。。)
  (2)函数类型 函数名(参数类型1,参数名1,。。。)
印刷错误点到为止:(2)参数类型 和参数名之间不应该有逗号!
  重要的是函数类型究竟是什么?是单一的函数返回值类型还是返回值类型 (参数类型,。。。)
不再说了吧,我也没有那么多的时间的精力!
==================================
一般人读书可以没有我这么”叫真“,请读者翻开书仔细看看吧

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangss2006/archive/2007/08/25/1759186.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值