- 前言
- 零、(第一次发博客,难免会有错误,望您不吝指正
- 一、编程环境介绍
- 虚拟机
- 为什么要安装虚拟机
- 常用的Linux系统
- 二、嵌入式
- 解释解释什么t*d叫t*d嵌入式
- 裁剪
- 三、目录结构
- 四、Linux命令
- 五、
- 直奔主题 : 结构体
- 概念
- 定义
- 结构体初始化
- 访问
- 方式一:通过结构体变量访问成员
- 方式二:通过结构体指针访问成员
- 我好困,那就明天再写吧
- 更新,见另一篇文章:模块化编程
前言
刚开始学习嵌入式人工智能,基于Linux的C语言课程。
零、(第一次发博客,难免会有错误,望您不吝指正 一、编程环境介绍 虚拟机
虚拟机是在我们电脑上虚拟出来的一台PC机。
为什么要安装虚拟机c语言的学习方式有很多,编译环境固然也很多。刚接触c语言时我用过DEV C++、VS环境,这两个软件容易操作,不用去记很多命令,调试也方便,不过他们都是安装在Windows系统上的。学习Linux就需要用LinuxOS,所以需要在Windows上面装虚拟机来模拟Linux操作系统。
常用的Linux系统常用的Linux操作系统有:小红帽(RedHat)、Debian、Ubuntu等。我是使用的Debian系统
二、嵌入式 解释解释什么td叫td嵌入式以计算机技术为基础,软硬件可裁剪。所谓软硬件可裁剪的意思就是:用软件来控制硬件,而且是根据不同的需求来实现不同的功能,这就叫裁剪。简言之:根据用户对产品的需求来定制,就叫所裁剪
裁剪裁剪分为两大块,一是软件裁剪:LinuxOS来实现。二是硬件裁剪:硬件模块电路的搭建
三、目录结构LinuxOS的目录结构:如同一颗倒立的树,根在顶部,越往下分叉越多
WindowsOS的目录结构:如同一片森林
linux系统下,一切皆文件
Linux系统下的目录分布:
根目录(/):Linux文件系统的顶层目录,所有的一切都在它之下,也从它开始
家目录(~ or 主目录 or 工作目录 or HOME):工作目录
注意:
1、 家目录以上的目录普通用户没有操作权限,想要操作的话给命令的最前面加sudo
2、 HOME是家目录,而home不是家目录,但是我们的家目录在home目录之下,huangxiaoyang才是家目录
。。。等我有空了再补全
直奔主题 : 结构体 概念结构体是一种自定义的数据类型,是一类事物相关属性的集合
定义struct 结构体名
{
属性1;
属性2;
...
属性n;
}; //花括号最后一定加分号;
比如要统计学生的姓名、年龄、身高,就可定义一个结构体用来存放这三个变量:
struct person //定义了一个结构体,它的数据类型为:struct person
{
char name[30]; //字符串数组:存放姓名
int height; //整形变量来存放身高数据
}; //结尾要加分号
结构体初始化
由 int a = 5;(数据类型 :int 变量名:a)
可知:struct 结构体名 变量名 = {……};
其中(struct 结构体名)为数据类型,
例如struct person student = { "liu ya qiong" , 168}; //struct person 就是数据类型 student为变量名 //结构体里面第一个属性是name,属于字符串数组,所以赋值“……”,第二个为int型,所以赋值数字
#include方式二:通过结构体指针访问成员struct person { char name[30]; int height; }; int main(void) { struct person student = {"liu ya qiong" , 168}; //定义一个变量student,数据类型为struct person printf("%Sn" , student.name); //通过结构体变量访问成员 printf("%dn" , student.height); //同上 return 0; }
指针变量名->成员;
//定义一个整型指针
数据类型 指针变量名;
int *p = NULL;
struct person *pp = NULL;
#includestruct person //定义一个学生信息结构体 { char name[30]; //姓名 int height; //英语 }; void Input(struct person *p) //输入函数,定义一个struct person 类型的结构体指针p { printf("请输入:姓名,身高n"); scanf("%s %d" , p->name , &p->height); //%s,输入的是字符串数组,所以不用取地址,后面的身高成绩需要取地址 //printf("%s %d",p->name,p->height);输入函数测试代码 } void Output(struct person *p) //输出函数,同上 { printf("姓名:%s " , p->name ); printf("身高:%d " , p->height); } int main(void) //主函数 { struct person student = {0}; //初始化全为0 Input(&student); //将student这个结构体的地址传给输入函数 Output(&student); //将student结构体的地址传给输出函数 return 0; }
运行效果:
模块化编程



