嵌入式学习第六天

移动命令

1、mv 文件名 路径 :将文件移动到指定的路径下

2、mv 文件夹名 路径: 将文件夹移动到指定的路径下

3、重命名:

mv 原文件名 新文件名

mv 源文件夹名 新文件夹名

sudo 命令

作用:临时的获取到root权限

sudo mkdir aa :以root用户身份创建的aa文件夹

快捷操作:

方向键上下键:上下查看之前使用过的命令

补全键:Tab

功能:自动补齐

在输入文件名或目录时,只需要输入该文件名的前几个字符,然后按下Tab键就能将文件名自动补全,如果类似文件名有多个,再按一次Tab键,会显示所有类似的文件名。

history:查看之前使用过的所有命令

ctrl+shift+'n' - 打开一个同路径的新终端

ctrl+'l' :清屏 clear

vi编辑器

vim三种工作模式

命令模式

插入模式

底行模式

命令模式下的快捷操作

h:向左移动

j: 向下移动

k: 向上移动

l: 向右移动

b: 移动到当前单词的开始

e: 移动到当前单词的末尾

w: 移动到下一个单词

gg: 文件头

G: 文件最后一行

0: 行首(零)

$: 行尾

G$:文件尾

gg=GG

复制剪切粘贴操作

yy 复制 dd 剪切 p 粘贴

多行复制/剪切:nyy / ndd

错误撤销恢复:u

取消撤销:Ctrl + r 恢复即可

底行模式下的操作:

w 路径和文件名,即可以指定名称保存到指定路径

wq:保存并退出

q!:强制退出

跳转到对应的行号

:n :跳转到第n行

分屏显示

:vsp 路径/新文件名字 (左右分屏)

:sp 路径/新文件名字 (上下分屏)

Ctrl + ww :切换分屏窗口

VScode

code 目标文件名

程序讲解:

#include<stdio.h>:标准I/O头文件,下文中的printf需要使用这个文件

main():主函数,一个程序的入口。一个程序有且只有一个main()函数

int:代表主函数的返回值类型是int型

printf():格式化输出,将括号内的内容打印到显示器上,打印字符串需要用双引号""引上

return 0;:配合主函数类型使用,一般来说返回0的程序表示程序运行成功

return -1; 返回负数代表代码执行失败了

c语言每句话结束都要使用;

C语言如何成为计算机能够理解执行是机器指令

gcc编译器:

定义:讲C语言代码转换成CPU能够识别的二进制指令。

gcc指令的格式:

gcc 【options】 【filenames】

gcc编译流程分析

1. 预处理:展开头文件、删除无用注释

gcc -E hello.c -o hello.i

2. 编译:检查语法错误,如果有问题报错,如果没有问题就生成汇编文件

gcc -S hello.i -o hello.s

3. 汇编:讲汇编文件转化为二进制文件

gcc -C hello.s -o hello.o

4. 链接:链接库文件,最终生成可执行文件

gcc hello.o -o test

./test

也可以直接:gcc hello.c -o hello

./hello

gcc hello.c 默认生成a.out可执行文件

./a.out

C语言32个关键字

定义:对编译器具有特定含义的标识符,是标识符的一个特殊的集合。C语言内所有的关键字都是小写。

1、存储类型:决定变量存放的位置

auto自动型 static静态型

extern外部引用 register寄存器

2、 数据类型:决定变量所占的空间大小

char(字符型1)、int(整型4)、short(短整型2)

long(长整型4)、 float(单精度浮点类型4)、double(双精度浮点8)、

signed(有符号)、unsigned(无符号)

3控制语句:

if、else、switch、case、default、break、while、for

do、goto(跳转)、continue、return

4)构造数据类型:

struct(结构体)、union(共用体)、enum(枚举)

5)杂项:

const(常量化)、

sizeof(计算数据所占空间大小)、//sizeof(数据类型/变量名)

typedef(重定义)、

void(空,修饰指针,不能修饰变量;作为函数的返回值;作为函数的参数)、

volatile(防止被编译器优化)

标识符

标识变量、函数,用户自定义的项目名称

命名规则:

1、 由数字、字母、下划线组成

2、 开头不能是数字

3、 不能和关键字重命

4、 见名知义

C语言的字符集

C语言的基本符号可以分为4类:

● 英文字母:大小写26个,共52个;

● 阿拉伯数字:0-9共10个数字;

● 下划线与分号;

● 特殊符号;

运算符:

● 算术运算符:+、-、*、/、%、++、--

● 关系运算符:<、>、>=、<=、==、!=

● 逻辑运算符:&&、|| 、!

● 位运算符:& | ~ ^(异或) >> <<

● 条件运算符:? :

● 分隔符: () [] {} . , ;

变量

1、 概念:在程序运行的过程中会发生变化的量。

2.定义变量格式:

[存储类型] 数据类型 变量名;

全局变量:

定义在函数外部,存放在静态区。定义未初始化初始值为0.

一般全局变量少用。

作用于全局

局部变量:

定义在函数内部,默认是auto型,存放在栈区

定义时没有赋初始值,初始值为随机值。

作用于函数内部

区别:

局部变量 全局变量

定义位置: 定义在函数体内部 定义在函数体外部

初值不同: 未赋初值时,值为随机值 未赋初值时,值为0

存储位置: 栈区 全局区

生命周期: 随所在函数共存亡 随程序共存亡

作用域: 作用于函数体内部 作用于整个程序

变量的实质

一个变量实质上代表了内存中某个存储单元。在程序中,变量a就是指用a命名的某个存储单元,用户对变量a进行操作就是对该存储单元进行操作;给变量a赋值,实质上就是把数据存入该变量所代表的存储单元中

常量

常量主要分为两类:

【1】直接常量:直接引用的数字等;

字符常量 ‘A’ , ‘a’

整型常量 10 100 0b1101 0664 0xaf

实型常量 3.14 5.69

字符串常量 "hello world""100"

【2】符号常量:使用标识符来代替一个数字(常见的:宏定义常量 和 常变量)

宏定义

#define 也是C语言预处理命令的一种,被称为宏定义指令

#define 宏名 宏值

使用宏定义的优点:

1、 给数值赋予一定含义,增强代码可读性

2、 减少代码的编写量

3、 可以做到 “一改全改”

练习:

1、 使用宏定义PI来定义3.1415926,计算圆的面积,半径的值通过终端输入。

按格式输入输出

int printf(const char *format, ...);

功能:按照指定格式向终端输出

参数:format

字符串 要输出的内容 "hello world\n"

"%d" int printf("%d",变量名);

"%c" char

"%f" float

"%lf" double

"%s" 字符串

"%p" 地址

"%#x" 十六进制

"%#o" 八进制

"%e" 指数

"%u" 无符号

"%-m.nf"

-:左对齐,默认右对齐

m:位宽,m>实际位宽,按m位宽输出

m<实际位宽,按实际位宽输出

.n:保留小数点后n位

...:表示不定参数,参数可以不止一个

返回值:输出字符的个数

int scanf(const char *format, ...);

功能:按照指定格式从终端输入

参数:同printf

int a;

scanf("%d",&a);

printf("%d\n",a);

返回值:正确输入数据的个数

当第一个数据输入错误时,直接返回0

man手册:帮助手册

1. shell命令

2. 系统调用函数

3. 库函数

退出: q

2、租船问题。

写程序计算游客需要付的租船的费用。租船每小时30元,押金100元。游客输入租船时间,计算出租船费用。租船费用=时间*每小时钱数+押金。要求押金与每小时钱数使用宏定义

3、从键盘输入5个学生的成绩(整数),要求输出总成绩(整数)和平均成绩(小数)

  • 53
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值