嵌入式学习第一阶段--C语言基础Day01

Linux基础

linux一切皆文件
根目录 /
家目录 ~

终端

快捷键

ctrl shift + 	放大终端
ctrl -			缩小终端
ctrl l			清屏
打开终端
1.点击图标
2.ctrl	shift	n	(在当前目录下)
3.ctrl	alt		t	(在家目录下)
关闭终端
1.点击关闭图标
2.ctrl	d
3.exit

hq			用户名	whami
ubuntu		主机名	hostname
:(中间)$	当前路径	pwd

命令

新建


文件夹	mkdir	文件夹名
文件	touch	文件名

同时新建多个:名字之间用空格隔开
文件夹	mkdir 文件夹1 文件夹2 ...
文件	touch 文件1 文件2 ...
多层嵌套:文件夹
mkdir -p 文件夹/文件夹/文件夹

查看


ls		查看当前路径下的内容
ls	-a	查看当前路径下的所有内容(隐藏内容)
ls	-l	查看当前路径下的所有内容的详细信息

b:块设备文件
c:字符设备文件
d:目录文件
-:普通文件
l:软链接文件
s:套接字文件
p:管道文件

文件权限

r:	读		4
w:	写		2
x:	执行	1

更改权限

chmod   777   文件名	

路径切换

cd	切换路径
cd	文件夹		下一级
cd	..			上一级
cd	.			当前路径
cd	-			上一次

相对路径:以当前位置开始的路径
绝对路径:以家目录为开始的路径

复制

文件		cp		文件名		目标地址
文件夹		cp	-r	文件夹		目标地址
重命名		cp		文件名		目标地址/新文件名	

移动

移动		mv		文件or文件夹		目标地址
重命名		mv 		文件or文件夹		目标地址/新文件or文件夹

删除

文件		rm		文件名
文件夹		rm	-r	文件夹
				-f	强制删除

vi编辑器

在这里插入图片描述

vi编辑器3种模式:
命令行模式:
复制	yy		nyy
粘贴	p
撤销	u
反撤	chtl r
光标移动:
首行		gg
最后一行行首	G
行首		0
行尾		$
插入模式:编写代码
a i o A I O
底行模式:
保存	w
退出	q
强制	!
复制	n,my
分屏	vsp
查找	/
替换:
替换首个	s/a1/a2
行替换	s/a1/a2/g
全文替换	%s/a1/a2/g
设置行号	set nu
取消行号	set nonu
取消高亮	nohl

gcc编译器

简写

gcc file1.c 	生成可执行文件a.out
./a.out

gcc file1.c	-o file1	自定义可执行文件
./file1

完整编译步骤

预处理、编译、汇编、链接

预处理

展开头文件、删除注释、替换宏定义

gcc	-E fiel1.c -o file1.i

编译

检查语法错误,有错报错,没错会转变成汇编语言,生成汇编文件

gcc	-S fiel1.c -o file1.s

汇编

把汇编文件生成不可执行的二进制文件

gcc	-c fiel1.c -o file1.o

链接

链接库文件,最终生成机器能够识别的二进制的可执行文件

gcc fiel1.o -o fiel1

计算机数据表示形式

数值型数据

非数值型数据

词法符号

关键字:32个

存储类型:auto、static、extern、register
数据类型:int、short、long、char、float、double、signed、unsigned
分支:if、else、switch、case、default
循环:for、do、while、go、to、break、continue
构造数据类型:struct、enum、union
其他:void、const、sizeof、typedef、return、volatile

标识符

定义变量名、数组名、函数名时,遵循标识符命名规则:
1.由字母、数字、下划线(_)组成
2.开头不能是数字
3.不能和关键字重名
4.见名知意

运算符

算术运算符、逻辑运算符、关系运算符、位运算符、选择运算符、赋值运算符

算术运算符

+、-、*、/、%、++、–
/:整数相除向下取整

int a=5/2;
printf("%d\n",a);		//2       %d整型  int

float a=5/2;
printf("%f\n",a);		//2.000000    %f浮点型  float  默认打印小数点后六位

float a=5.0/2;
printf("%f\n",a);		//2.500000    
printf("%.1f\n",a);		//2.5     .1保留一位小数

float a=(float)5/2;		// int 5短暂的强制转换成float    float 5只在当前这一行
printf("%.1f\n",a);		//2.5

%:只能用于整数运算

5%2==1

++
a++ <==> a=a+1

独立成句:
int a=5;
1)++a;
		printf("%d\n",a);		//6
2)a++;
printf("%d\n",a);		//6
赋值运算:
int a=5;
	1int b= a++; // = +
		printf("%d %d\n",a,b);//6  5
	
	2int b= ++a; // + =
		printf("%d %d\n",a,b);//6  6
打印语句
int a=5;
    1printf("%d\n",a++);	//5
    	printf("%d\n",a); 		//6
	2printf("%d\n",++a);	//6
    	printf("%d\n",a); 		//6

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值