嵌入式C语言基础学习笔记

1. 经典入门:hello world

#include<stdo.h>
int main()
{
   
	printf("hello world!\n"); //打印hello world!
}

1.1 概念

源文件:源文件即源代码文件,C语言源文件后缀名是.c。
头文件:头文件后缀名为.h(head,头),C语言代码由源文件和头文件组成。
关键字:关键字是C语言征用了的一些字,这些字在C语言中代表特殊含义,已经被C语言定义好了。每个关键字都有自己特定的含义,我们必须搞懂每个关键字的所有含义和用法,否则就看不懂C语言程序。
注释:C语言中注释以//开头,或者/* */,注释是给程序员看的,不是给机器看的。也
就是说,程序员写注释给其他人看,以让人明白自己为什么要这么写。但是编译器编译程序的时候是忽略注释内容的,所以机器根本看不见注释,也不理注释。
符号:C语言程序中包含很多符号,如; : , + () { } * 等等,各种符号都有自己的含义,必须搞明白各种符号的含义,才能看懂C语言程序。
变量:会变化的量。C语言程序中用变量来进行计算。
函数:函数是C语言的一个基本组成单位,一个C语言程序其实就是由很多函数组成的,每个函数用来完成一定的功能,函数可以调用别的函数来完成功能。函数的标志是().
C语言中有一个特殊的函数叫main,这个函数是整个程序的内定的入口,也就是说整个C语言程序是从main函数开始执行的,其他的函数都是直接或者间接被main调用。

1.2 C语言写代码步骤

第一步:编辑源代码(使用vi或者其他编辑器)
第二步:编译。编译就是用编译器把源程序转化成可执行程序的过程,编译要用到编译器。我们在linux中使用编译器一般是gcc。
譬如:gcc hello.c 把当前目录下hello.c文件编译,得到的可执行文件名字叫a.out
也可以自己指定编译后生成的可执行程序的名字,使用gcc hello.c -o hello
第三步:执行编译生成的可执行程序,执行方式是./hello
第四步:调试。当你执行后发现程序结果不对,不是自己想要的,这时候就是返回来看源代码哪里不对。然后修改,再编译执行,再看结果。如此循环直接结果正确。

1.3 C语言关键字

include(包含) 头文件包含
int(integer,整数) 用来表示一个整数的类型叫整形。
float(浮点型) 用来表示小数的类型
char(character,字符) 字符型数据类型
return(返回) 函数返回

1.4 习题

1.4.1 打印下面图形
  	  *
     ***
    *****
     ***
      *

程序代码

#include <stdio.h>

int main ()
{
   
printf("\n  *     \
        \n ***    \
		\n*****   \
		\n ***    \
		\n  *     \n");
return 0}
	
1.4.2 打印下面的图形
***********************
*****Hello, world!*****
******************Donke

程序代码

#include <stdio.h>

int main ()
{
   
	printf("***********************\
	        \n*****Hello, world!*****\
	        \n******************Donke\n");
return 0}
	

总结
1、使用到的技术主要是printf中\n换行和\接续符。
2、题目目的主要是为了熟悉C语言程序的编辑、编译、执行、调试过程。
3、C语言中的注释,短的用//,多行的用/* */。

2. VMWare共享文件夹使用

2.1 为什么使用共享文件夹

当我们裸机安装了Windows,并且在Windows中安装了虚拟机软件VMWare,并且在虚拟机中安装了ubuntu后。我们一般在Windows中编辑源代码,而在linux中编译、执行源代码。这时候就需要在Windows和linux之间进行交互。
之前通过smb服务器,现在通过VMWare的共享文件夹就可以轻松实现。

2.2 怎么建立Windows的共享文件夹

第一步:先在Windows中创建一个文件夹,主要要使用英文名称。
第二步: VMWare中,菜单栏 VM -> Settings -> Options -> Shared Folders选项卡,右边上侧选择Always Enabled,下面点击Add,next,在打开的选项卡中Host Path项目中浏览选择刚才第一步中创建的文件夹,下面Name中会自动弹出一个相同的名字,这个名字是将来Windows中的文件夹在linux虚拟机中的映射文件夹,名字可以改也可以不改。然后一直OK,完成即可。
第三步:在linux中,直接到 /mnt/hgfs目录下,即可找到刚才第二步中Name相同的名字的
文件夹,这个目录即是第一步中Windows中目录在linux下的映射。

3. C语言数据类型

3.1 整形

C语言中的整形对应数学中的整数,整形变量是用来描述一个整数值的,整形变量经过计算
后也只能是整数(整型),不可能出现小数(浮点型).
要求:要学会整形变量的定义,赋值,计算。要学会使用printf函数打印出一些整形变量的值,作为输出和调试。
C语言中整形有三种:
(1)int 整形
(2)short int,又叫做short,短整形(<=整形)
(3)long int,又叫做long,长整型(>=整形)

3.2 浮点型

C语言中浮点型对应数学中的小数。浮点型有float和double两种。使用方式相同,不同在于表示范围和精度。
float表示的范围小,精度低(小数点后6位);
double表示范围大,精度高。(小数点后16位)
范围是说表示的数有多大,精度是指这个数的分辨率有多细
注意:printf中打印float或double类型,要是用%f,不能用%d。

3.3 字符型

字符型对应ASCII字符。ASCII字符是一种编码,就是用数字编码来表示一个符号的一种方法
本质上说,字符型其实也是整形,只是这些整形数被用来表示一些字符的ASCII编码值,所以叫做字符型。
字符型一般用8位二进制表示,无符号字符型范围是0~255.
字符型其实是一种比short还短的整形,所以它可以和int相运算。

3.4 有符号数和无符号数

数学中数是有符号的,有整数和负数之分。所以计算机中的数据类型也有符号,分为有符号数和无符号数。

有符号数:
整形:signed int(简写为 int)
signed long,也写作signed long int,(简写为long)
signed short,也写作signed short int(简写为short)
signed(表示signed int)
浮点型:
signed float(简写为float)
signed double(简写为double)
字符型:
signed char(简写为char)

无符号数:
整形:整形有无符号数,用来表示一些编码编号之类的东西。譬如身份证号,房间号
unsigned int(没有简写)
unsigned long int(简写unsigned long)
unsigned short int(简写为unsigned short)

浮点数:没有无符号浮点数。也就是说,小数一般只用在数学概念中,都是有符号的。
字符型:字符型有无符号数
unsigned char(没有简写)

注意:对于整形和字符型来说,有符号数和无符号数表示的范围是不同的。
譬如字符型,有符号数范围是-128~ 127,无符号数的范围是0~255.

4. C语言常用运算符

4.1 数学运算符号

4.1.1 常见数学运算符号,跟数学中理解相同

+加号
-减号
*乘号
/ 除号,相除以后的商
% 取余符号,相除以后余数是几

4.1.2 跟数学中意义不同的运算符

= 赋值运算符,与数学中的等号完全不同。赋值运算符作用是经过运算后符号左边的部分(
左值,一般是一个变量),的值就等于右边部分(右值,一般是常数或变量)了。
+= a = a + b; 等同于 a += b;
-= a = a - b; 等同于 a -= b;
*= a = a * b; 等同于 a *= b;
/= a = a / b; 等同于 a /= b;
%= a = a % b; 等同于 a %= b;
eg:
bianliang1 = bianliang1 + bianliang2;
bianliang1 += bianliang2;

4.2 判断运算符

==	等于
!=	不等于
> 	大于
<	小于
>=	大于等于
<=	小于等于

4.3 逗号运算符

, 逗号运算符的主要作用是用来分割

4.4 ++与- -

++		a++; 等同于 ++a; 	等同于 a = a + 1;	等同于 a += 1;
--	    a--; 等同于 --a;	等同于 a = a - 1;	等同于 a -= 1;

4.5 作业

1、自己查找资料或写代码测试,总结++放在前面和后面的区别(a++和++a区别)

#include <stdio.h>

int main(void)
{
   
	int a;
	a = 12;
	printf("a = %d\n", a++);
	printf("a = %d\n", a);
	printf("a = %d\n", ++a);
	
	return 0;
}

执行结果

a = 12
a = 13
a = 14

注意:强调程序风格。
所谓程序风格,主要是指写代码的格式,譬如空格,空行,缩进,注释,文件头,函数头等
越是大公司,越看重程序风格。软件界公认的准则:程序风格不良好的程序是垃圾代码,是废品;写出程序风格不良好的代码的人,是垃圾程序员。

5. 程序结构

在C语言程序里,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构

5.1 顺序结构

顺序结构:按照实物本身特性,必须一个接着一个来完成。
对于顺序结构来说,不需判断,因为下一句指令就是你要执行的。对与循环与选择结构来说,都需要进行判断。然后根据判断结果来决定怎么办。

逻辑上有一种类型,叫bool类型(又写作boolean类型,中文叫布尔类型)。布尔类型只有两个值,真和假。

5.2 选择结构

选择结构:到某个节点后,会根据一次判断结果来决定之后走哪一个分支。

C语言中有以下一些判断运算符
==	等于
!=	不等于
>	大于
<	小于
>=	大于等于
<=	小于等于

使用这些判断运算符,可以写出一个判断表达式,这个判断表达式最终的值就是一个bool类型。这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环。

C语言中选择结构一共有两种
第一种:if else
引入关键字:if else else if

if (bool值)				// 如果bool值为真,则执行代码段1,否则执行代码段2
{
   
	代码段1
}
else
{
   
	代码段2
}

if (bool值1)				// 如果bool值1为真,则执行代码段1
{
   							// 否则则判断bool值2是否为真,若为真则执行代码段2
	代码段1					// 否则直接执行代码段3
}
else if (bool值2)			// 开头的if和结尾的else都只能有一个,但是中间的
{
   							// else if可以有好多个。
	代码段2
}
else
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值