单片机编程语言——C语言(1)-程序员宅基地

技术标签: 学习  stm32干货  c语言  单片机  


前言:我们都知道单片机要对其写指令、编程等就需要一种编程语言。在众多的编程语言中不可否认的是c语言是最适合成为单片机的编程语言的。我们在这里分享一下c语言的知识点。

结构

一般来说c语言的结构,一般都是包括若干个头文件(以#include" xxx ")和函数组合而成的。例:

#include "stdio.h"
int main(void)
{
    
  printf("hello wold");
  return 0;
}

在这里我们看到有两部分#include "stdio.h"int main(void)

#include <stdio.h>就是一条预处理命令, 它的作用是通知C语言编译系统在对C程序进行正式编译之前需做一些预处理工作。

int main(void)则是函数,并且是主函数在一个C语言中只有一个主函数,即main函数。C语言主要就是执行main函数里面的内容,并且我们看到main函数下有一对花括号“{}”,花括号里面就是函数要编写的主要内容。另外我们发现在每一句结尾的时候都要加上一个分号“;”。这个分号主要就是结束这个语句的意思。如果不加这个分号的话编译器就会报错。因此,分号是必须在语句结束的时候在结尾加上

注释

当语句过长的时候,可读性不是很高的时候。这个时候注释就起到了很大的作用。他可以让我们的可读性增高很多。并且我们知道注释是给程序员看的,不是给电脑读的。在c语言中主要有两种的注释方法。即

/*  多行注释*/

//单行注释

例如:

#include "stdio.h"
int main(void)
{
    
 // printf("hello wold");
  return 0;  //注释...........
}

在printf前面加上了// ,即单行注释,注释的这一行电脑就不会读取printf了。

多行注释也是一样的情况的。

变量定义与赋值

变量就是可以变化的量,而每个变量都会有一个名字。变量占据内存中一定的存储单元。使用变量之前必须先定义变量,要区分变量名和变量值是两个不同的概念。变量名,即为变量的名称;变量值,即为赋值给变量的值。
例:

int a=10;  //定义int型变量,变量名为a赋值10
int b;
b=10;

值得注意的是在定义中不允许连续赋值,连续的赋值是不合法的。例:

int a=b=c=5; //不合法的赋值操作

变量的赋值分为两种方式:
①先声明再赋值
②声明的同时赋值

数据类型

在c语言中数据类型有很多,整形、字符型、浮点型。
① 整型数据是指不带小数的数字(int,short int,long int, unsigned int, unsigned short int,unsigned long int),在这些整形数据,他们的区别也就是字节和取值的范围不同。
在单片机编程中常用的是unsigned int、unsigned long。这两种形式。

②字符型是指不是数字是字符。即:a、b、c、d等等,在字符型中主要就是char
单片机中最经常用的数据也就是unsigned char,因为它所占的数据资源最小,因此它使用的最频繁。

③浮点数据是指带小数的数字。和整形数据差不多按照小数的精度可以分为(float,double,long double)。一般来说float已经是够用的了。

强制转换

在单片机中有时候要传输的数据不相同的时候。这个时候就需要我们进行强制类型转换。强制类型转换是通过定义类型转换运算来实现的。其一般形式为:

(数据类型) (表达式)

其作用是把表达式的运算结果强制转换成类型说明符所表示的类型。
即:

int a=10;
float b=0.5;

printf("%f\n",(float)(a*b));
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_51914919/article/details/123807078

智能推荐

我的世界服务器换披风的网站,minecraft我的世界局域网换皮肤和披风-程序员宅基地

文章浏览阅读3.7k次。minecraft很多人不知道皮肤和披风怎么换,装了mod也没用,皮肤有人说必须要正版,也是胡扯。那该怎么换呢?下面是学习啦小编收集整理的minecraft我的世界局域网换皮肤和披风,希望对大家有帮助~~minecraft我的世界局域网换皮肤和披风工具/原料minecraft电脑版skinme方法/步骤1进入http://www.skinme.cc/#./mod_index?&_suid=..._minecraft披风网站

python按钮虚化_深度学习与图像处理之:人像背景虚化-程序员宅基地

文章浏览阅读457次。简单实现思路:对图像内容进行分割,提取人像对图像背景进行模糊化处理将人像和背景重新合成在这里,使用DeepLabV3模型对图像内容进行分割并提取人像,实现的代码如下:import numpy as npimport tensorflow as tfimport cv2from deeplabmodel import *def create_pascal_label_colormap():color..._python 图像处理 深度学习

burpsuite 设置https_从头开发一个BurpSuite数据收集插件-程序员宅基地

文章浏览阅读180次。一段时间没写公众号了,最近写了个 burpsuite 数据收集的插件,于是想出一篇从头编写一个 burpsuite 插件的教程。这个插件的目的收集 burpsuite 请求中的数据,如请求中的子域名、文件名、目录名、参数名等,保存到数据库,然后根据出现的次数进行排序,出现次数多的排在前面,从而强化我们的字典。插件效果演示先来看看插件的效果图:该插件会在 burp 上面新建一个标签页,用来...

c语言if函数嵌套公式例子,IF函数的嵌套使用案例-程序员宅基地

文章浏览阅读3.2k次。从Excel小白到慢慢深刻领悟函数,这一路我见证了她的成长,下面我们一起来看看她带给我们的内容吧~=====手动分割线====昨天我学习了Excel的IF函数,基础语法其实很简单,因为网上很多关于IF函数的讲解大多是用单个条件来讲解的,确实是很容易理解,但也只是单一条件下的IF函数运用。实际情况往往我们的判断条件是不止一个的,并且IF函数的魅力就在于此,面对多条件,就要考虑IF函数的的嵌套了,IF..._[任务1]使用if完成嵌套选择。说明:从键盘输入性别,用字符f'代表女,"m'代表男,若为女性则输出“欢迎女士您的光临!”,男性则要求输入年龄,判断年龄是已经成年,成年则输出“欢迎xx岁您的光临!”。。

java 对象内存_如何查看java对象所占的内存大小-程序员宅基地

文章浏览阅读421次。展开全部我们为什么想要知道对象所占对内存的大小呢?e68a843231313335323631343130323136353331333332636264 (1)做一些cache的时候,我们不可能把数据库的所有的数据都缓存到内存里面,我们要估计缓存的大小。 (2)内存泄露的时候,我们可以查看某些对象的大小来定位问题,当然还有其他的更有效的方式,比如使用MAT分析dump文件 (3)根据jvm的堆内..._代码中查看 一个对象占的heamp的大小

统一日期格式_Excel使用TEXT函数自定义日期格式"e年m月",1930是个转折点-程序员宅基地

文章浏览阅读2.1k次。有的人录入日期时喜欢用小数点做分割,类似这样的“19.03.01”,这是一个不好的习惯,因为这种方法输入的日期不会被Excel识别为日期,只能当作是文本,如果涉及日期相关的计算时,就需要把这个日期给转换成Excel承认的日期格式:2019-3-12019/3/1如何做这个转换呢?我们要用到两个函数:TEXT:文本格式函数,相当于自定义格式SUBSTITUTE:文本替换函数具体的情况有两种,一种是年..._将不规范的日期数据修改为excel可识别的日期格式

随便推点

网络异常_排查Calico网络中ARP响应异常-程序员宅基地

文章浏览阅读1.4k次。一、现象部署应用时,新建的POD调度到K8S的部分计算节点后,发现ping不通pod,自然服务也不可用二、分析2.1 查看网络信息进入到有问题的节点docker_id=`docker ps | grep cluster-test| grep POD | awk '{print$1}'` && docker_pid=`docker inspect -f{{.State.Pi..._docker 自动清理导致arp异常

电路原理计算机解法,电路原理学习指导与习题全解-程序员宅基地

文章浏览阅读516次。图书简介本书是孙玉坤、陈晓平主编的《电路原理》配套的教学指导书,各章的排列次序、标题都与教材相同。每章均由四个部分组成:第一部分为基本知识点,概括性地说明本章的主要概念、基本理论和分析方法;第二部分为重点与难点,指出学习本章内容时容易出现的疑点和难点,帮助读者掌握重点,理解难点,系统深入地掌握教材内容;第三部分为习题解析,给出了教材中习题的全部解答,习题的解析方法与教材中本章、节讲述内容密切配合,..._电路原理学习指导与习题集pdf

走进“开源SDR实验室” 一起玩转GNU Radio:gr-digital_开放sdr实验室csdn-程序员宅基地

文章浏览阅读7.5k次,点赞6次,收藏63次。本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!温馨提示:“开源SDR实验室”是北京的。本文介绍GNU Radio源码的gr-digital相关实例及模块。一、demod1、constellation_soft_decoderGRC文件为《gnuradio-3.9.1.0/gr-digital/examples/demod/constellation_soft_decoder.grc》。该流图的功能是对比分析硬判决解码、软判决解码的区别。关于硬判决、软判.._开放sdr实验室csdn

mysql assoc什么意思_MYSQL_ASSOC?-程序员宅基地

文章浏览阅读71次。这个字符串的意思是:mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组,mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。它仅仅返回关联数组。这也是 mysql_fetch_array() 初始的工作方式。例子$con = mysql_connect("localhost", "hel..._mysqli_assoc 是什么数组

服务器系统盘掉盘原因,服务器掉盘怎么办-程序员宅基地

文章浏览阅读1.3k次。服务器掉盘怎么办 内容精选换一换Windows云服务器变更规格后,可能会发生磁盘脱机,因此,变更规格后,需检查磁盘挂载状态是否正常。本节操作介绍变更规格后检查磁盘挂载状态的操作步骤。对比规格变更前、后,在“计算机”中查询的磁盘个数是否一致。是,表示磁盘挂载状态正常,结束。否,表示存在磁盘脱机,执行2。示例:以使用Windows 2008镜像的云服务器为例,假设变更规格前变更弹性云服务器规格时,如果..._服务器掉盘

基于RISC-V架构的45条指令单周期CPU设计——第2章_alu_mux.v riscv-程序员宅基地

文章浏览阅读1.2k次。完整目录完整代码和论文各部件功能设计1、取指部分PCpcAdderinstMem2、译码部分ID3、访存部分regFile4、立即数扩展部分IE5、ALU部分ALU6、存储器部分dataMem7、多路选择器部分mux_From_rs1_PC_To_ALUmux_From_rs2_IE_To_ALUmux_From_PC_rs1_To_PCmux_From_rs2_To_memmux_From_ALU_mem_ToReg...._alu_mux.v riscv