IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ARM Study Day3:标准C编程之变量、变量的输入和输出、数据类型 -> 正文阅读

[嵌入式]ARM Study Day3:标准C编程之变量、变量的输入和输出、数据类型

一、C语言的历史背景

1972年,贝尔实验室,Dennis Ritchie,为B语言增加了数据类型,并做了大量修改,使之在功能、性能和易用性方面,取得了长足进步。这就是C语言!
1973年, Dennis Ritchie用C重写了Unix内核
1978年,不朽名著《The C Programming Language》正式出版。C从贝尔实验室走向世界
1989年,美国国家标准化协会,ANSI C89
1999年,国际标准化组织,ISO C99
2011年,国际标准化组织,ISO C11

二、C程序的开发步骤

1、编辑源代码
C程序文件类型
源文件(.c后缀)
hello.c
头文件(.h后缀)
stdio.h

C语言的注释风格
从/开始,到/结束,中间是注释,无行数限制
a /* b c
d */ e
f
不能嵌套注释:/我/是大/神/
从//开始,到本行结束,单行注释
a // b c
d // e
f
可以嵌套注释:我是大神

#include指令:包含头文件
头文件扩展
#include <xxx.h>
先让gcc去到-I指定的目录去找,再找系统目录
一旦找到将头文件内容包含拷贝到hello.c中
#include “xxx.h”
先找-I目录,再找当前目录,最后找系统目录
头文件的系统目录
/usr/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.6.3/include

主函数main原型
int main(void) {
执行语句1;
执行语句2;

执行语句N;

return 0; //成功
或者
return 非0;//异常
}

2、编译预处理
3、将源预处理的结果编译为汇编代码
4、将汇编代码汇编为目标模块
5、将目标模块和库链接为可执行程序
6、将可执行程序加载到内存形成进程映像
7、处理器执行进程映像中指令

三、gcc的常用选项

-o:指定输出文件
-E:编译预处理
gcc -E hello.c -o hello.i
-S:编译产生汇编文件
gcc -S hello.i –o hello.s
-c:汇编产生目标模块
gcc -c hello.s –o hello.o
-l:指定链接库
gcc hello.o –o hello

暂时不用
-std=C89/C99:指定语言标准
-Wall:产生尽可能多的警告
-g:生成调试信息
-I:指定头文件搜索目录
-L:指定库文件搜索目录
-O1/O2/O3:指定优化等级

变量相关概念

回顾内存RAM功能和特点

字节(Byte):计算机将内存分成一格一格,每一格用来存储一个数字,每一格对应的专业术语叫字节

地址(Address):计算机给内存中的每个字节都指定一个唯一的编号,编号从0开始,后续字节编号依次加1

存储区(Buffer):计算机将1字节或者多个连续的字节形成的一个存储单元简称存储区,又称缓冲区

首地址(Base Address):又称起始地址,存储区中第一个字节的地址用来当存储区的首地址

原则:访问内存前先分配

四、常量与变量

在程序执行过程中,其值***不发生改变***的量称为常量
直接常量(字面值)
整型量:10,10U,10L,10LL,012,0xA
实型量:0.12,0.12F,1.2E-1
字符量:‘A’,’\n’
字符串:“Hello, World !\n”
标识符
标识变量名、数组名、函数名、类型名的有效字符序列
符号常量
符号化的常量,如宏定义、枚举元素等

在程序执行过程中,其值**可以改变的量称为变量
定义变量分配内存的语法:数据类型 变量名 = 初始值;
例如:int a = 520;
变量在内存中占据一定的存储单元,其内容可变
变量在使用前,必先定义其类型,且只能定义一次
欲使变量拥有确定的值,必为其赋值
定义变量的同时赋予初值叫做初始化
变量名必须是
合法
的标识符
字母或下划线开头
包含字母、下划线和数字
不能与关键字冲突
大小写敏感

变量的四要素:
例如:int a = 10, b = 20;
名称
叫什么?
类型
是什么?

存什么?
地址
在哪里?

五、C语言的编程风格

1、单条语句可写在任意多行内
2、必要的空格令代码更加清晰
3、严格的缩进令代码层次分明
4、适度的空行划分出逻辑单元
5、统一用驼峰或者下划线命名
6、代码尽量在屏幕左侧2/3
7、右侧1/3留白

六、两个常用函数

printf (“格式字符串”, …);
格式化输出,向显示器打印输出信息
参考代码:var_printf.c

scanf (“格式字符串”, 地址表);
格式化输入,从键盘上捕获输入的数据并保存到变量中
参考代码:scanf.c

七、基本数据类型

数据类型功能:gcc预算将来分配内存大小
例如:int 分配4字节内存
int a = 520;
char 分配1字节内存
char a = 23;

12个基本数据类型如表

在这里插入图片描述

sizeof关键字

sizeof (参数);
计算内存的大小,以字节为单位
参数可以是类型、变量或表达式
不计算参数的值,只关注其类型
参考代码:sizeof.c

详解基本数据类型之字符类型

字符常量
用单引号括起来表示,例如:‘A’
底层存储的是整数,即字符的ASCII码
‘d’ - ‘a’ = 本质是100-97=3

字符变量
(signed) char/unsigned char
1字节
printf/scanf格式化占位符:%c或%hhd

ASCII编码

American Standard Code for Information Interchange,美国信息交换标准代码
1967年首次发表,1986年最后一次修订
包括128个字符,其中:
33个控制字符多数已废弃不用
95个可显示字符包括26个基本拉丁字母大小写、10个阿拉伯数字、32个标点及数学符号、1个空格
扩展版本EASCII增加了部分欧州语言字符
无法涵盖所有语言字符,逐渐被Unicode编码取代

常用控制字符

在这里插入图片描述

常用可显示字符

在这里插入图片描述

转义字符

在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:05:12  更:2021-09-01 12:06:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:15:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计