电子芯吧客盘点!各路大神的C语言编程建议和技巧( 四 )
09
包含文件
简单规则:包含(include)文件时应该永远不要嵌套包含 。 如果声明(在注释或隐式声明里)需要的文件没有优先包含进来 , 那么使用者(程序员)要决定包含哪些文件 , 但要以简单的方式处理 , 并采用避免多重包含的结构 。 多重包含是系统编程的祸根 。 将文件包含五次或更多次来编译一个单独的 C 源文件的事情屡见不鲜 。 Unix 系统中 /usr/include/sys 就用了这么可怕的方式 。
说到 #ifdef , 有一个小插曲 , 虽然它能防止读取两次文件 , 但实际上经常用错 。 #ifdef 是定义在文件本身中 , 而不是文件包含它 。 结果是常常导致让成千上万不必要的代码通过词汇分析器 , 这是(优秀编译器中)耗费最大的阶段 。
只需遵从以上简单规则 , 就能让你的代码变得优雅而美观 , 至少也是赏心悦目 , 从技术变成艺术~~
延伸阅读
有人认为 , 现在是java和.net的时代 , 有谁还需要C以及汇编呢?孰不知 , java和.net是建立在软件之上的 , 是为了垄断市场而建立起来的体系 ,犹如挖好一个金碧辉煌的坑 , 请你往下跳 , 还自以为站在巨人的肩膀上 , 事实上成了坑底之蛙 。 要成为一个真正的程序员 , 并期望成为一个程序员高手 , 必须从机器 出发 , 从cpu到操作系统 , 再到软件体系 , 高手的境界就是悟道后的明镜灵台 , 软件设计出神入化 , 我就是程序 , 程序就是我 。
旁观者李四说:此人大笨也!我用鼠标随便拖几个控件 , 就是一个xxx管理系统了 , 你用C语言怕是一年也写不出来吧!好吧 , 我要承认 , 讲这话的都已经是mS 的奴才了 , 别的我不了解 , MFC本身就是一个封闭的架构 , 从MFC入手学习 , 你只会形成一种封闭的思维模式 , 因为MS希望很多人只学会表面的东西 , 不致成 为高手 , 所以它大力推荐所谓的可视化的程序开发工具 , 也真有很多人愿意上他的当 , 最后真正迷失方向 。 说他做不了程序吧 , 他也可以做 , 但是如果程序复杂一 点 , 出现问题时 , 问题出在哪里就搞不清楚了 , 反正是不清楚!
梁肇新 , 大牛啊 , 他说:"我就搞不懂了 , 用鼠标怎么写程序呢?在我的公司里 , 高手的键盘响个不停 , 鼠标偶尔响一下 , 新手是鼠标响个不停 , 键盘偶尔响一下 , 他们的薪水相差的就不是一倍那么多了!"
C语言是各大操作系统的基础 , Unix、Linux、Windows其内核都清一色是C语言开发的 , (某些地方是和汇编语言混合开发的) , 君不见 WindowsAPI都是C语言函数的接口?Unix/Linux绝大多数应用都是C语言开发的;Windows应用程序用纯API开发已然不多 , 大多都 是依靠某种ApplicationFramework , 比如所谓的VC++ , 其实就是指VCIDE+C++语言+MFC(现在重点已转向ATL、 WTL) , 但是Windows服务、网络、驱动程序等底层软件 , 还是C语言开发的 。 各种语言的编译器 , 包括java虚拟机 , 都是用C语言开发的 。 各种嵌入 式设备 , 如手机、PDA也都是C语言开发的 。
下面是一些个人建议:
多看课本、代码
由于C语言灵活、强大 , 初学者要全面地掌握它非常吃力 , 因此在学习C语言的过程中 , 要多看课本、代码 , 课本上没有的可以上网搜索 。 首先一定要熟练掌握变量、常量、基本数据类型、库函数及特点和运用、运算符、表达式及语句、C语言编写的基本格式 。 再次要掌握C语言的流程控制语句、数组、函数、指针等基础知识 , 上述知识熟练后就可以学习链表、队列、树、图等知识 。 最后要熟练各个知识点的运用 , 可以把学习的重点放在函数的设计框架、参数设计、返回值设计等关键问题上 。
学好数学、英语
在C语言的学习过程中 , 一般有大量的算法和数据结构需要去了解(大一同学在大二会接触这些知识 , 如果有想提前了解的同学 , 可以点击下面链接查看:) , 许多算数运算和逻辑运算、关系运算、循环结构都可以利用数学知识来完成的 , 同样许多算法都是为了完成数学领域的计算 。 编写程序是为了让计算机可以代替人操作运算过程 , 从而减少人力 。 可见数学在计算机学习中的重要地位 , 有了数学知识 , 你会发现数据结构与算法原来也是很简单的 。 同理 , 在C语言的学习过程中 , 我们会用到大量的英语知识 。 对于编程来说 , 英语的作用体现在阅读英文文档 , 适应国际化的编程环境 , 我们要记住常用的一些C语言中用到的词汇 , 也就是诸多的关键字 。
推荐阅读
- 扫描器|远距离条形码扫描器型号盘点
- 电子青少年与电子烟:企查查显示电子烟企业三年增7.1万家
- 电子商务实战专家|华为再强,还离不开世界工厂,自嗨不是最好的选择?
- 法定代表人|林斌卸任北京小米电子产品有限公司法定代表人、经理,王川接任
- zol中关村在线|盘点京东值得入手的5G手机 价位不同却各有所长
- 慢慢买比价|618装机配置推荐丨从两千到两万全价位盘点,不同需求都能满足
- 博科园|太好了,在硅光电子芯片上实现:可编程的电路、可擦除的元件!
- |超级电子皮肤问世 天津大学研发“全天候”自愈合材料
- 雨后晴天电子商务|淘宝新品不好做?直通车快速引流打爆新品功能即将上线!
- 电子烟|深圳拟对电子烟门店开全国“第一罚” 商家或面临2千元罚款