C51编译器
51单片机开发编译有很多,现在比较有名的是IAR for 8051编译器和KEIL for C51编译器,但这两个软件都不是免费的,官网提高的免费版是有使用限制的。另外还有一些编译器是免费的,但需要一定基础,初学者就不推荐使用了,等你翅膀硬了之后在自己配置编译环境吧。
简单介绍两个免费编译器:可跨平台使用的开源编译器sdcc,有空可以自己查资料搭建一下,后期如果有时间我再做个教程吧。另外微软公司提供的Visual Studio Code这个免费又强大的代码编辑器配合一些三方插件工具也可以实现各种单片机编译功能,效果也不错,这个也以后再另说吧。IAR for 8051编译器和KEIL for C51编译器在官网都可以免费下载,可自行下载安装,我这里后续的内容以KEIL for C51编译器为例。
C语言变量类型和数据范围
有C语言基础的朋友可以不看或简单看一下。
什么是变量?变量自然和常量是相对的。常量就是1、2、3、4.5、10.6…等已经确定的数据或字符(串),而变量则跟中小学阶段方程式中的a,b,c……x,y,z是一样,它可以是1,也可以让它是2,或者任何其他数字。
以前数学里边有的正数、负数、整数和小数可以是无穷的。但在计算机系统中由于内部空间的限制,在C语言里,除名字和数学里学的不一样外,还对数据范围也进行了一定限制。
在C语言中数据基本类型分为字符型、整型、长整型以及浮点型,它们的数值范围不一。并且C51中的数据范围和常规计算机平台的略有不同,以后可能在其他单片机中又会有些不一样,这都是单片机硬件属性决定的,这点大家不用死记,做个了解,以后编程时多注意一下就行,具体问题具体分析。
在我们平时编程的时候也要考虑合理使用数据类型,为变量合理分配数据类型一个可以避免数据超限,另外也可以节约内存空间。优化程序的时候也应考虑数据类型的合理合规。
C51数据类型和范围查看下图:
C语言基本运算符简介
和小学学习数学时的加、减、乘、除等运算符号一样,在C语言中也包含这些运算,但是有些表达方法不一样,并且还有其他额外的一些运算符号。在C语言编程中,加、减、乘、除和取余数的符号分别是:+、-、*、/、%。此外,C语言中还有额外的两个运算符++和--,它们的用法是一样的,一个是自加1,一个是自减1,以上的运算符称为算术运算符,它的具体功能如下:
与数学中的关系运算符一样,C语言中也有关系运算符只是他们的写法你不一定认识,比如>,=,==,!=,它们的具体使用说明如下:
C语言中还有逻辑运算符比如&&,||,!,
因为计算机是使用二进制,所以C语言中还有位运算符,使用说明如下:
以上很多运算符你之前可能都只见过符号不认识含义,在C语言中未来编程方便还有许多赋值运算符。你可能想到=,但还有+=,-=,*=,/=等等,更多你没讲过的,一起来看看:
还有一些用的多的,又是初学者很容易搞混的运算符,如下:
因为内容比较多,我们在这一节就先简单了解,后面编程具体使用时再详细介绍。
和数学中的运算符具有优先顺序一样C语言中的运算符也有优先顺序,他和数学中的运算符优先级差不多,但因为多了很多,我们平时编程时需要记住它们的优先顺序,否则结果可能不如你意,当然我们在不清楚的情况下使用括号来限定运算范围是很好的习惯,现在我们看一下C语言中的运算符优先级: