C致谢:非常感谢我的大学老师桂林师范高等专科学校赖侦华老师提供的大量资料和文章写作指导
一.程序设计和C语言
(1) 计算机程序及语言
计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。
语言是描述用户与计算机沟通的语言,常见的面向对象语言有Java、C++、python等,面向过程有C,因为C的能直接操作单片机底层寄存器和强可移植性等优势非常适合单片机开发(汇编语言因为时代发展已经不太适合单片机开发)。
(2).C语言概述
C 语言是一种通用的高级编程语言,具有简洁的语法、高效的执行效率和强大的功能。常见的标准有C11、C99、C89。
下面是keil 5 里面常见的C标准
(3)掌握C语言程序的结构
C的结构包括顺序结构、选择结构、循环结构
(4)掌握运行C语言程序的步骤与方法
参考资料:c程序的上机执行过程_上机运行C程序的步骤与方法 - 编程实验 - 电子发烧友网
(一)编写代码,生成.C文件 -> (二)编译C源文件程序,生成.obj文件 ->(三)链接程序,生成一个.exe的可执行文件 -> (四)运行.exe文件 操作系统上的
创建project工程->编写生成.c文件 ->编译生成.hex文件(也有.axf和.bin)->烧录进单片机执行 单片机上的
二.数据表现形式及运算
参考资料1:C语言32个关键字-最详解释_c语言32个关键词的意思-优快云博客
参考资料2: C 常量 | 菜鸟教程 C 变量 | 菜鸟教程
(1)常量和变量
常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量,通常用const,#define 来实现
变量可以看作是一个存储数据的容器,变量的值在程序运行过程中是可以改变的。
(2)整型、字符型、浮点型数据的定义和使用
int(4个字节) char (1个字节) float 4个字节 double 8个字节
x = y ;//把变量y的值赋值给x的内存空间去
#include <stdio.h>
int main(int argv,char *argv[])
{
int a=1;//整型变量定义
float b=2.1;//整型浮点型变量定义
double c=2.02;//双精度浮点型变量定义
char d='s';//字符型变量定义
printf("a=%d\n",a);
printf("b=%f\n",b);
printf("c=%f\n",c);
printf("d=%c\n",d);
return 0;
}
(3)数据的类型转换
表达式 (type_name) expression
#include <stdio.h>
int main(void)
{
int a;
char b = 'A';
float c= 1.8;
a = (int)b;//转换成ASCLL码
printf("a=%d\n",a);//65
a = (int)c;//舍去小数点
printf("a=%d\n",a);//1
return 0;
}
(4)赋值的误区
参考资料:【C语言深入】细聊C语言中的“左值”和“右值”_左值和右值的区别-优快云博客
左值:通常是一个变量,不可以是常量
右值:常量、表达式计算结果、临时对象
关于取地址负&,所产生的结果是一个地址常量或指针常量。
三.顺序程序设计
程序中的语句是按书写的先后顺序依次执行
(1)运算符和表达式
运算符优先级
(2)基本语句
i++; //先执行运算,后赋值
++i;//先赋值,后运算
#include <stdio.h>
int main(void)
{
int i = 2,j=2;
/*
j = i++; //这里比较抽象 因为 ++运算符的优先级是高于 = 的 是从右到左的
printf("j=%d\n",j); //2
printf("i=%d\n",i); //3
*/
j = ++i; //先执行 ++i 最后把 ++i过后的值 赋给 j
printf("j=%d\n",j); //3
printf("i=%d\n",i); //3
return 0;
}
(3)输入输出
printf() 函数 %d(整型) %f(浮点型) %s(字符串型) %c(字符型)
scanf() 函数
#include <stdio.h>
int main()
{
int a,i;
char b;
char str[100];
float d;
printf("请输入一个整数:");
scanf("%d",&a);//整数输入
getchar();
printf("请输入一个字符:");
scanf("%c",&b);
printf("请输入字符串:");
scanf("%s",&str);
printf("请输入一个小数:");
scanf("%f",&d);
printf("a=%d\n",a);
printf("b=%c\n",b);
printf("str=%s\n",str);
printf("d=%f\n",d);
return 0;
}
四.选择结构设计
(1)关系运算符和关系表达式
逻辑与 && 乘法
或 || 加法
非 ! 取反
逻辑运算符的返回值:1 逻辑真 0逻辑假
单片机上是 SET(置位) 高电平,RESET (复位)低电平 ,下面是hal库里面的IO状态设置