苏嵌嵌入式linux实训第四天

主要学习内容 :
了解C语言概论,重要性,以及基本知识,查缺补漏
一.概述
1.C语言之父?丹尼斯里奇,1978 k&Ec–unix
2.C语言特点(优势)?.net–万德 C++/-.net C#
直接访问硬件
运行效率(运行时,解释性)
移植性
子问题<C语言为什么能够直接访问硬件>
指针类型 保存地址 (访问硬件的原因)
力扣
<嵌入式开发为什么选择C语言>
所有操作系统的内核都采用了C语言
直接访问硬件 运行效率
不要跟随潮流,要明白内核原因,有自己的理解和简介,C语言依旧很重要。
3.C语言的标准
K&RC 、C89、C99
语法标准
作业:C语言的语法标准详解
【K&R C】 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了《The C Programming Language》的第一版(按照惯例,经典著作一定有简称,该著作简称为 K&R),书末的参考指南 (Reference Manual) 一节给出了当时 C 语言的完整定义,成为那时 C 语言事实上的标准,人们称之为 K&R C。从这一年以后,C 语言被移植到了各种机型上,并受到了广泛的支持,使 C 语言在当时的软件开发中几乎一统天下。

【C89 (ANSI C)】 随着 C 语言在多个领域的推广、应用,一些新的特性不断被各种编译器实现并添加进来。于是,建立一个新的“无歧义、于具体平台无关的 C 语言定义” 成为越来越重要的事情。1983 年,ASC X3(ANSI 属下专门负责信息技术标准化的机构,现已改名为 INCITS)成立了一个专门的技术委员会 J11(J11 是委员会编号,全称是 X3J11),负责起草关于 C 语言的标准草案。1989 年,草案被 ANSI 正式通过成为美国国家标准,被称为 C89 标准。
【C90 (ISO C)】 随后,《The C Programming Language》第二版开始出版发行,书中内容根据 ANSI C(C89)进行了更新。1990 年,在 ISO/IEC JTC1/SC22/WG14 (ISO/IEC 联合技术第 I 委员会第 22 分委员会第 14 工作组) 的努力下,ISO 批准了 ANSI C 成为国际标准。于是 ISO C(又称为 C90) 诞生了。除了标准文档在印刷编排上的某些细节不同外,ISO C(C90) 和 ANSI C(C89) 在技术上完全一样。
【C95】 之后,ISO 在 1994、1996 年 分别出版了 C90 的技术勘误文档,更正了一些印刷错误,并在1995 年通过了一份 C90 的技术补充,对 C90 进行了微小的扩充,经过扩充后的 ISO C 被称为 C95。
【C99】 1999 年,ANSI 和 ISO 又通过了最新版本的 C 语言标准和技术勘误文档,该标准被称为 C99 。这基本上是目前关于 C 语言的最新、最权威的定义了。
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 的支持。
梁老师介绍了一些网站 力扣 github
学习C语言重要的还是练习,而不是一味地看书,需要实践。

二.数据类型
1.所有的数据类型的定义、初始化;
e. g. 变量a
int a; 整型变量
int* a;整型指针变量
int** a;整形指针的指针变量
int a[10];整形数组
int a[10];整形指针数组
int( a)[10];数组指针变量,指向的是执行数组
int( a)(int);函数指针变量,指向的是形参为int返回值为int
int( a[10])(int);函数指针数组. 形参为int,返回值为int
一个有十个指针的数组,该指针指向一个函数,该函数有一个整型参数,并返回一个整型数
e. g. 2 int
(
(fp1)(int)[10];
fb1:函数指针变量指向一个函数,形参为int,返回值为数组指针,该指针指向一个由十个整形指针的数组。
int
(
(arr[5])())();
arr:函数指针数组 该数组的每个元素都指向函数,函数形参为空,返回值为函数指针,该函数指针指向一个形参为空返回值为int
的函数;
1、float(
(b())[])();
B,函数形参为空返回值,为数组指针指向一个函数指针数组,该数组的数组的每个元素指向一个形参为空返回值为float的函数;
2.void
(c)(char,int()());
C函数指针变量,指向一个函数返回值为void*,有两个形参,一个为char,一个函数指针,该指针指向一个形参为空,返回值为int的函数;
3.void *(d)(int &,char*(*(char,char **));
4、float(*(e[10])(int&))[5];
e函数指针数组,数组的每个元素指向一个形参为int
,返回值为数组指针函函数,该数组指针指向一个有五个元素的float的数组。

右左法则
先找到变量名 往右看 ;就是一个变量
再往左看 确定变量保存的是什么类型
确定a是一个变量,就要确定该变量保存什么类型的数据,保存什么类型的数据,它就是什么类型的变量;
确定a是一个指针变量,就要确定该指针变量保存什么类型地址,保存什么类型的地址,他就是什么类型的指针变量;
确定a是一个数组 就要确定数组里的元素是什么类型的,元素是什么类型的。它就是什么数组。
确定a是一个函数,就要确定函数的形参和返回值。
1.各种数据类型的字节长度(所占内存空间的大小)及取值范围;
char的取值范围:unsigned 0-255
signed-128-127
原码 反码 补码解决复数的存放问题
计算机里保存的是补码
正数的补码就是他的原码
负数的补码取反加一
000 0000
1111111
10000000=-128
1111111
0000000
000 0001=-1
10000000
11111111
0111 1111=127
基本类型的字节长度:
sizeof(int)=4
sizeof(char)=1
sizeof(short)=2
sizeof(long)=4旧版 long* 8 其他相同
sizeof(float)=4 64位
sizeof(double)=8
各种数据类型的指针的字节长度:
指针变量的字节长度是固定!<因为指针保存的是地址,地址在操作系统中是固定的长度,是由操作系统位数决定的,32位系统指针四个字节64位指针8个字节>
sizeof VS strlen
sizeof 运算符不是函数 作用:计算数据类型或者变量的所占内存空间的大小strlen是字符串库函数;作用:统计当前字符串的字符个数不包含\0Sizeof,在计算字符串的大小是包含\0输入输出printf<输出 格式化控制符>scanfgetcharputchargets++i 被替换成变量ii++ 被替换成数值

感受:对C语言的掌握还不够,一直很焦灼,有点颓,挫败感。因为基础不够牢固,之前的几节课,听得内容都感觉很陌生,今天的课真正开始C语言的回顾学习,才让我感到一些熟悉,同样获得了很多从未了解的知识,不知道结果如何,但确实有所收获。希望可以调整好学习状态,加强实操。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值