目录

1. C语言特点及高效使用

1.1 C语言理论体系

1.2 由此带来的优点

1.3 由此带来的缺点及解决方案


1. C语言特点及高效使用

1.1 C语言理论体系

① 底层语言:用于系统编程

② 小型语言:依赖标准函数库以减少特性集

③ 包容性语言:广阔的自由度

1.2 由此带来的优点

① 高效:为了改写由汇编语言编写的程序

② 可移植

a. C语言没有分裂成不兼容的多种分支

b. C语言编译器规模小且容易编写

c. C语言特性支持可移植性

③ 功能强大:拥有庞大的数据类型和运算符集合

④ 灵活:C语言特性限制非常少

⑤ 与UNIX系统集成好

1.3 由此带来的缺点及解决方案

① 隐藏错误

a. 规避C语言缺陷(参考《C陷阱与缺陷》)

b. 使用软件工具

lint/splint:更广泛的错误分析

调试工具:发现C编译器无法查出的错误(即不是语法错误,而是以运行时错误或不正确输出表现出来的错误)

提高GCC检查级别(-Wall)

越界检查工具(bounds-checkers)

内存泄漏监测工具(leak-finder)

② 难以理解

a. 避免过度使用技巧

b. 采用编码规范

③ 难以修改和维护(因为没有类、包等特性)

a. 利用现有代码库(e.g. 界面、图形、通信等库)

b. 紧贴标准,避免使用非标准特性和库函数(使用非标准特性会影响可移植性)

C程序设计语言现代方法01:C语言概述相关推荐

  1. 论文浅尝 - ACL2022 | 基于多语言语义解耦表示的跨语言迁移方法实现多语言阅读理解...

    论文作者:吴林娟,天津大学,研究方向为自然语言理解 论文链接:http://arxiv.org/abs/2204.00996 代码地址:https://github.com/wulinjuan/SSD ...

  2. R 语言怎么保存工作目录到当前路径_【R语言基础】01.R语言软件环境搭建及常用操作...

    一.R语言简介 R语言是专业的统计分析软件,来自著名数据科学网站(http://www.kdnuggets.com/)发起的一个2019年统计分析和数据挖掘软件使用情况的调查结果: 表明R语言是该领域 ...

  3. 无效的变量名c语言,变量方法用法 _C语言-w3school教程

    C语言 的 变量 变量是内存位置的名称.它用于存储数据.其值可以更改,可以重复使用多次. 它是通过符号表示内存位置的方法,以便可以容易识别. 我们来看一下声明一个变量的语法: type variabl ...

  4. c语言教程+school,C语言教程方法用法 _C语言-w3school教程

    C语言 的 C语言教程 此C语言教程与编程方法面向C语言初学者和专业人士,帮助他们轻松了解和学习C语言编程.我们的C语言教程中使用程序解释每个主题. C语言被开发用于创建系统应用程序,直接与硬件设备( ...

  5. 1k求和c语言使用方法,(C语言递归实现)S=1k +2k+……+nK(1的K次方,2的K次方等等),N,K从键盘浏览....

    题目: (C语言递归实现)S=1k +2k+--+nK(1的K次方,2的K次方等等),N,K从键盘浏览. 解答: #include int g(int n,int k) { if(k==1) retu ...

  6. 新手学习c语言的方法,学习C语言方法“新手必看”

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.多看代码 在有一定基础以后一定要多看别人的代码. 注意代码中的算法和数据结构. 毕竟学C之后的关口就是算法和数据结构.提到数据结构,指针是其中重要的一 ...

  7. 傲游浏览器语言怎么切换 傲游浏览器语言切换方法简述

    作为一款多功能.个性化.多标签的浏览器产品,傲游浏览器不仅能够有效减少浏览器对系统资源的占用率,还内置了大量的贴心功能,其中便包括浏览器语言切换.那么,傲游浏览器语言要怎么切换呢?不清楚具体步骤的朋友 ...

  8. c语言采用解释方式6,C语言程序设计题目及解答-01.doc

    C语言程序设计题目及解答-01.doc 一.判断题20分1. 计算机是信息处理的工具,任何信息必须被转换成二进制形式数据后才能由计算机进行处理.存储和传输.2分 2. C语言采用解释方式将源程序转换为 ...

  9. C语言程序设计:现代方法(第2版)第三章全部习题答案

    前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解 ...

最新文章

  1. java基础===点餐系统
  2. groovy 慢_groovy优化
  3. 我现在的简历以及后面的更改方向
  4. reactjs css modules解决组件间样式覆盖问题
  5. 小程序实现图片的放大预览
  6. 分治:分治和动态规划的区别,二分检索递归和迭代方式实现
  7. 在 Docker 里运行 Microsoft SQL 服务器
  8. 【翻译】卡通图解DNS,你的信息怎么被泄露的?
  9. 我的世界末日之后无限法则服务器,《我的世界》全新玩法无限法则上线
  10. 用c语言编译二叉树,C语言 数据结构平衡二叉树实例详解
  11. 家庭局域网_如何查看局域网内所有ip?
  12. 计算机报 论文,计算机学院毕业设计(论文)题目上报.doc
  13. 《Ogre一步一步学开发》 一、Ogre源码编译与安装,从源代码开始构建Ogre图文教程(Ogre 1.12.1 Source + VS2019 + Windows10)
  14. 给Ubuntu18.04/Nvidia nano永久分配swap空间
  15. [编程题] 翻转数列--附详细分析思路
  16. Windows常用快捷键及结束explorer.exe出现蓝屏的办法
  17. Apk脱壳圣战之---脱掉“梆梆加固”的保护壳
  18. 收获一篇好文章,与大家共享
  19. 购物车的实现——淘淘商城(二十六)
  20. Oracle报错ORA-01507: ??????

热门文章

  1. 在java中创建线程有几种办法_Java中创建线程的几种主流方式
  2. Not so Mobile UVA - 839
  3. 取消ajax请求时页面闪烁,用Ajax+js+jQuery实现无闪烁定时刷新页面
  4. Windows下安装MinIO
  5. 如何查看Python的版本
  6. Spring Boot项目中使用RestTemplate调用https接口出现 unable to find valid certification path to requested target
  7. c# mvvm模式获取当前窗口_【自学C#】I 书 12 异常处理
  8. 打印php错误日志,php怎样打印错误日志
  9. oracle手机怎么样,ORACLE环境存储哪家强?
  10. 生产者消费者模式-java原生、Disruptor实现方案