C程序设计语言现代方法01:C语言概述
目录
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语言概述相关推荐
- 论文浅尝 - ACL2022 | 基于多语言语义解耦表示的跨语言迁移方法实现多语言阅读理解...
论文作者:吴林娟,天津大学,研究方向为自然语言理解 论文链接:http://arxiv.org/abs/2204.00996 代码地址:https://github.com/wulinjuan/SSD ...
- R 语言怎么保存工作目录到当前路径_【R语言基础】01.R语言软件环境搭建及常用操作...
一.R语言简介 R语言是专业的统计分析软件,来自著名数据科学网站(http://www.kdnuggets.com/)发起的一个2019年统计分析和数据挖掘软件使用情况的调查结果: 表明R语言是该领域 ...
- 无效的变量名c语言,变量方法用法 _C语言-w3school教程
C语言 的 变量 变量是内存位置的名称.它用于存储数据.其值可以更改,可以重复使用多次. 它是通过符号表示内存位置的方法,以便可以容易识别. 我们来看一下声明一个变量的语法: type variabl ...
- c语言教程+school,C语言教程方法用法 _C语言-w3school教程
C语言 的 C语言教程 此C语言教程与编程方法面向C语言初学者和专业人士,帮助他们轻松了解和学习C语言编程.我们的C语言教程中使用程序解释每个主题. C语言被开发用于创建系统应用程序,直接与硬件设备( ...
- 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 ...
- 新手学习c语言的方法,学习C语言方法“新手必看”
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.多看代码 在有一定基础以后一定要多看别人的代码. 注意代码中的算法和数据结构. 毕竟学C之后的关口就是算法和数据结构.提到数据结构,指针是其中重要的一 ...
- 傲游浏览器语言怎么切换 傲游浏览器语言切换方法简述
作为一款多功能.个性化.多标签的浏览器产品,傲游浏览器不仅能够有效减少浏览器对系统资源的占用率,还内置了大量的贴心功能,其中便包括浏览器语言切换.那么,傲游浏览器语言要怎么切换呢?不清楚具体步骤的朋友 ...
- c语言采用解释方式6,C语言程序设计题目及解答-01.doc
C语言程序设计题目及解答-01.doc 一.判断题20分1. 计算机是信息处理的工具,任何信息必须被转换成二进制形式数据后才能由计算机进行处理.存储和传输.2分 2. C语言采用解释方式将源程序转换为 ...
- C语言程序设计:现代方法(第2版)第三章全部习题答案
前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解 ...
最新文章
- java基础===点餐系统
- groovy 慢_groovy优化
- 我现在的简历以及后面的更改方向
- reactjs css modules解决组件间样式覆盖问题
- 小程序实现图片的放大预览
- 分治:分治和动态规划的区别,二分检索递归和迭代方式实现
- 在 Docker 里运行 Microsoft SQL 服务器
- 【翻译】卡通图解DNS,你的信息怎么被泄露的?
- 我的世界末日之后无限法则服务器,《我的世界》全新玩法无限法则上线
- 用c语言编译二叉树,C语言 数据结构平衡二叉树实例详解
- 家庭局域网_如何查看局域网内所有ip?
- 计算机报 论文,计算机学院毕业设计(论文)题目上报.doc
- 《Ogre一步一步学开发》 一、Ogre源码编译与安装,从源代码开始构建Ogre图文教程(Ogre 1.12.1 Source + VS2019 + Windows10)
- 给Ubuntu18.04/Nvidia nano永久分配swap空间
- [编程题] 翻转数列--附详细分析思路
- Windows常用快捷键及结束explorer.exe出现蓝屏的办法
- Apk脱壳圣战之---脱掉“梆梆加固”的保护壳
- 收获一篇好文章,与大家共享
- 购物车的实现——淘淘商城(二十六)
- Oracle报错ORA-01507: ??????
热门文章
- 在java中创建线程有几种办法_Java中创建线程的几种主流方式
- Not so Mobile UVA - 839
- 取消ajax请求时页面闪烁,用Ajax+js+jQuery实现无闪烁定时刷新页面
- Windows下安装MinIO
- 如何查看Python的版本
- Spring Boot项目中使用RestTemplate调用https接口出现 unable to find valid certification path to requested target
- c# mvvm模式获取当前窗口_【自学C#】I 书 12 异常处理
- 打印php错误日志,php怎样打印错误日志
- oracle手机怎么样,ORACLE环境存储哪家强?
- 生产者消费者模式-java原生、Disruptor实现方案