物联网工程实训博客day-3
Linux小白进阶-5
一.日报表
项目名称 | 【苏嵌实训-嵌入式 linuxC 第 2 天】 |
---|---|
今日进度以及任务 | C语言回顾,回顾总结 |
本日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) | 课后布置题目完成,作业完成。 |
本日开发中出现的问题汇总 | 1.对于左右法则解决复杂的指针声明; 2.++i,i++部分计算; 3.各数据类型输入缓存问题没考虑; |
本日未解决问题 | 无 |
本日开发收获 | 1.C语言具有的优势; 2. C语言标准 3.关于各个数据类型输入时的缓存释放 4.各数据类型字节长度 |
二、作业
C语言的语法标准?
C90
标准由于C语言被各大公司所使用(包括当时处于鼎盛时期的 IBM PC),因此到了 1989 年,C语言由美国国家标准协会(ANSI)进行了标准化,此时C语言又被称为 ANSI C。
而仅过一年,ANSI C 就被国际标准化组织 ISO 给采纳了。此时,C语言在 ISO 中有了一个官方名称——ISO/IEC 9899: 1990。其中:
- 9899 是C语言在 ISO 标准中的代号,像 C++ 在 ISO 标准中的代号是 14882;
- 而冒号后面的 1990 表示当前修订好的版本是在 1990 年发布的。
对 于ISO/IEC 9899: 1990 的俗称或简称,有些地方称为 C89,有些地方称为 C90,或者 C89/90。不管怎么称呼,它们都指代这个最初的C语言国际标准。
这个版本的C语言标准作为 K&R C 的一个超集(即 K&R C 是此标准C的一个子集),把后来引入的许多非官方特性也一起整合了进去。其中包括了从 C++ 借鉴的函数原型(Function Prototypes),指向 void 的指针,对国际字符集以及本地语言环境的支持。在此标准中,尽管已经将函数定义的方式改为现在我们常用的那种方式,不过K&R的语法形式仍然兼容。
C99标准
在随后的几年里,C语言的标准化委员会又不断地对C语言进行改进,到了 1999 年,正式发布了 ISO/IEC 9899: 1999,简称为 C99 标准。
C99 标准引入了许多特性,包括内联函数(inline functions)、可变长度的数组、灵活的数组成员(用于结构体)、复合字面量、指定成员的初始化器、对IEEE754浮点数的改进、支持不定参数个数的宏定义,在数据类型上还增加了 long long int 以及复数类型。
毫不夸张地说,即便到目前为止,很少有C语言编译器是完整支持 C99 的。像主流的 GCC 以及 Clang 编译器都能支持高达90%以上,而微软的 Visual Studio 2015 中的C编译器只能支持到 70% 左右。
C11标准
2007 年,C语言标准委员会又重新开始修订C语言,到了 2011 年正式发布了 ISO/IEC 9899: 2011,简称为 C11 标准。
C11标准新引入的特征尽管没 C99 相对 C90 引入的那么多,但是这些也都十分有用,比如:字节对齐说明符、泛型机制(generic selection)、对多线程的支持、静态断言、原子操作以及对 Unicode 的支持。
今日学习总结
-
C语言之父?
丹尼斯里奇 -
C语言特点(优势)?
直接访问硬件、运行效率、移植性
<C语言为什么可以直接访问硬件?>指针类型
<嵌入式开发为什么选择C语言?>所有操作系统的内核都采用了C语言; -
C语言标准?
K&RC、C89、C99、C11 -
数据类型
指针变量的字节长度是固定的
指针保存的是地址,地址在操作系统中是固定长度的,长度是由操作系统位数决定的。 sizeof是运算符不是函数,计算数据类型或者变量的所占内存空间的大小。