| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 培训 >> 程序员 >> 初级程序员 >> 正文 用户登录 新用户注册
等级考试二级C专家编程读书笔记(上)           ★★★ 【字体:
等级考试二级C专家编程读书笔记(上)
作者:佚名 文章来源:本站原创 点击数: 更新时间:2007-4-6

1、尽量不要在你的代码中使用无符号类型,以免增加不比要的复杂性。尤其是不要仅仅因为无符号书不存在负值(如年龄、国债)而用它来表示数量。尽量使用int那样的有符号类型,这样在涉及升级混合类型的复杂细节时,不必担心边界情况(如-1被翻译为非常大的正数)。只有在使用位段和二进制掩码时,才可以用无符号数,应该在表达式中使用强制类型转换,使操作数均为有符号或者无符号数。

   2、这也是为什么C++ 语言令人失望的原因:它对C语言中存在的一些最基本的问题没有什么改进,而它对C语言最重要的扩展(类)却是建立在脆弱的C类型模型上。

   3、看一段代码: int main(void) { int pa=0; char * avarsc[] = { "color monitor", "big disk", "Cray" "on-line drawing routhines", "mouse", "keyboard", "power cables", }; char ** pp; pp = avarsc; printf("%s\n", avarsc[2]); // output Crayon-line drawing routhines printf("%s\n", *(pp++)); // output big disk scanf("%d", pa); return 1; }   注意字符串数组的定义,最后那个逗号,还有"Cray"后头没有逗号其实avarsc是个字符指针的指针。

  曾经写过一个这样错误的代码,要为一个字符串: "" 申请空间,应该是STRLEN("\"\"")却写成了STRLEN(""""),编译没有错误,也就没有注意,在后来走查代码的时候,发现了错误的地方,多亏为它多申请了不少空间,不然这又是个难以察觉的内存错误。

   4、全局变量由C编译程序在动态区之外的固定存储区域中存储。当程序中多个函数都使用同一数据时,全局变量将是很有效的。然而,由于三种原因,应避免使用不必要的全局变量:

  ①不论是否需要,它们在整个程序执行期间均占有存储空间

  ②由于全局变量必须依靠外部定义,所以在使用局部变量就可以达到其功能时使用了全局变量,将降低函数的通用性,这是因为它要依赖其本身之外的东西。

  ③大量使用全局变量时,不可知的和不需要的副作用将可能导致程序错误。如在编制大型程序时有一个重要的问题:变量值都有可能在程序其它地点偶然改变。

   5、在编译时分配存储空间的变量称为静态存储变量,定义的静态存储变量无论是做全程量或是局部变量,其定义和初始化在程序编译时进行。作为局部变量,调用函数结束时,静态存储变量不消失并且保留原值。

  补充:对于静态全局变量,主要是为了保证唯一性。

  补充:关于static的三点正确见解

  A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;

  B、若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;

  C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;

责任编辑:杨勇  联系方式  Email:杨勇
电话:51228163
  • 上一篇培训:

  • 下一篇培训:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关培训
    三级信息管理技术150题
    二级公共基础填空40题
    等级考试二级VB上机题
    二级VF模拟试题及答案(11)
    二级VB模拟试题及答案(12)
    计算机二级C模拟试题(10)
    二级C语言经典400道题
    考试二级C模拟试题
    程序员都要学C语言的五个理由
    等级二级公共基础40题
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号