嵌入式学习——————第二站 LinuxC

这篇文章总结了Linux与C高级编程的学习内容,包括gcc编译流程、指针传参、函数指针、动态内存管理、结构体、共用体、枚举、大小端、调试技巧以及Linux操作系统的基础知识如发行版、软件包管理等。此外,还涵盖了shell命令和shell脚本编程的相关概念。
摘要由CSDN通过智能技术生成

进一步步入嵌入式,经过两周的Linux与C高级的学习,在此进行对Linux与C高级学习的大致的整体汇总,主要掌握了以下的知识点。

目录

一、前提基础

1.gcc编译流程

2.指针传参

3.main函数传参

4.二维数组图解

二、LinuxC

2.函数指针

2-1:函数指针的概念

2-2:函数指针的定义格式

2-3:关键字typedef取别名的用法

2-4:函数指针数组的定义

2-5:回调函数

3.动态内存管理

3-1:申请空间

3-2:释放空间

3-3:扩容空间

3-4:重置空间

4.结构体

4-1:如何构造一个结构体类型

4-2:如何定义结构体变量

4-3:如何给结构体成员进行赋值

4-4:如何访问结构体中的成员

4-5:结构体的字节对齐

5.共用体

6.枚举

7.大小端(字节序)

8.调试BUG的方式

9.对于段错误的理解

10.递归函数

11.头文件的书写

12.Make

12-1:Make中的一些变量

二、LinuxOS

2-1:Linux的发展史

2-2:Linux的发行版本

2-3:Linux的体系结构

2-4:Linux的软件包管理

2-5:Linux的网络基础

2-6:Linux下的shell命令

3、shell特殊字符

3-1:通配符

3-2:管道

3-3:命令置换

3-4:重定向

三、Linux下的shell编程

1.脚本的理解

2.脚本的编写格式

3.脚本的编程步骤

4.脚本的语法

4-1:自定义变量

4-2:位置变量

4-3:系统预定义变量

4-4:环境变量

5.脚本的语句

5-1:说明性语句

5-2:功能性语句

5-3:结构性语句

6.脚本的函数

总结


一、前提基础

1.gcc编译流程

  1. 预处理
  2. 编译
  3. 汇编
  4. 链接

2.指针传参

        --》一级指针传参,二级指针传参,普通变量传参

        --》看是否需要在子函数内部引起实参本身发生改变

3.main函数传参

  • main函数无参   int main()   int main(void)
  • main函数带参   int main(int argc,const char * argv[])

4.二维数组图解

        二维数组与指针应用

二、LinuxC

        内容:理解Linux系统 C高级(函数和指针的结合,动态内存管理,结构体,共用体,大小端,多文件编译,Make工程管理,递归函数,回调函数,枚举,GDB调试工具)

1.指针函数

  • 概念

2.函数指针

2-1:函数指针的概念

  • 概念
  • 思考:如何定义一个指向整型的指针,如何定义一个指向一维数组的指针

2-2:函数指针的定义格式

  • 定义函数指针的方式:返回值类型 (*pFunc)(形参列表)

2-3:关键字typedef取别名的用法

  • typedef 类型名  新类型名;
  • 针对函数指针类型取别名的写法:返回值类型  (*新类型名)(形参列表)

2-4:函数指针数组的定义

  • 函数指针类型 数组名[元素个数]

2-5:回调函数

        概念

3.动态内存管理

        申请空间:malloc calloc

        释放空间:free

        初始化空间:memset

        扩容空间:realloc

        头文件:#include <stdlib.h>

        函数原型

3-1:申请空间

        void *malloc(size_t size)

        void *calloc(size_t nmemb,size_t size)

        !calloc在申请完空间之后,会自动将申请的连续空间初始化为'\0'

3-2:释放空间

        void free(void *ptr)

3-3:扩容空间

        void *realloc(void *ptr,size_t size);

        !扩容之后的空间首地址可能和之前的地址一样,也可不一样!

        #include<string.h>

3-4:重置空间

        void *memset(void *s,int c,size_t n)

        清空空间居多

4.结构体

4-1:如何构造一个结构体类型

4-2:如何定义结构体变量

4-3:如何给结构体成员进行赋值

4-4:如何访问结构体中的成员

4-5:结构体的字节对齐

        概念

        考虑范围

        32OS与64OS开辟空间

5.共用体

        概念

        注意:共用体的成员共用同一片空间

6.枚举

        概念

        定义

7.大小端(字节序)

        概念

        大端存储:低字节处的内容存储在高地址处,高字节处的内容存储在低地址处

        小端存储:低字节处的内容存储在低地址处,高字节处的内容存储在高地址处。

8.调试BUG的方式

        1.printf打印

        2.gdb调试工具

9.对于段错误的理解

        1.数组越界

        2.操作空指针或者野指针

        3.修改常量区内容      

10.递归函数

        概念      

        三要素:1.从哪里开始? 2.从哪里结束? 3.每一步干什么?

11.头文件的书写

        格式

12.Make

        概念

        使用

12-1:Make中的一些变量

        用户自定义变量:变量名:=值

        自动变量:  $<:依赖中的第一个依赖    $^:所有依赖     $@:目标名

        系统预定义变量:CC  CFLAGS  RM

        环境变量:export 变量

二、LinuxOS

2-1:Linux的发展史

2-2:Linux的发行版本

2-3:Linux的体系结构

        内核,shell,硬件

2-4:Linux的软件包管理

        离线安装

        在线安装

        工具:APT

2-5:Linux的网络基础

        IP地址:A,B,C,D,E类IP

        子网掩码

        网关

        DNS服务器

2-6:Linux下的shell命令

        三要素:命令名称  [选项]  [参数]

        用户切换命令

        用户管理命令

        常见的shell命令

        软链接与硬链接

3、shell特殊字符

3-1:通配符

        *   ?   [范围]   [指定范围]    [^指定范围]

3-2:管道

        格式:command1 | command2 | ..... | commandN

        理解

        xargs命令

3-3:命令置换

        格式:Command1  `Command2`

        理解

        管道与命令置换的区别

3-4:重定向

        输入重定向

        输出重定向

        情况讨论: >   >>   2>   2>>  &>   &>>

三、Linux下的shell编程

1.脚本的理解

        shell命令,shell脚本

2.脚本的编写格式

3.脚本的编程步骤

4.脚本的语法

4-1:自定义变量

        赋值   引用

4-2:位置变量

4-3:系统预定义变量

        $#   $@   $*   $?

4-4:环境变量

        添加新环境变量  export

        修改环境变量值  export

        清除环境变量   unset

5.脚本的语句

5-1:说明性语句

5-2:功能性语句

        1.动态获取变量的值

        read

        2.通配符的转义

        软转义:双引号 和  不加双引号

        硬转义:单引号  和  \

        3.expr算术运算命令

        4.测试命令test

5-3:结构性语句

        1.顺序结构

        2.选择结构

        3.循环结构

6.脚本的函数


总结

以上就是对这两周Linux和C高级学习的总结了,嵌入式学习的下一站将会是对IO的总结。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值