# 嵌入式C语言1

1. 基础概括。

C能做什么:嵌入式开发、操作系统、驱动开发、引擎开发、高性能游戏开发....
C语言执行过程:

编写c文件--> 编译.c文件 --> .obj文件 --> 连接stdio.h 生成可执行文件.exe --> 最后执行。

注释: // 单行注释
/* 多行注释 */
#include<stdio.h> // 预处理,程序在运行之前,需要提前做的事情。
关键字:被C语言赋予了特殊含义的 单词。

常量:在程序执行过程中,其值不能发生改变的数据。

整型常量、实型常量(有小数点)、字符常量('a', 只能是字母、数字、英文字母)、字符串常量("abcd")
.93 等价于0.93
18.0 等价于18.

1.1.格式控制符(占位符)

整型 %d decimal
实型 %f floating-point
字符 %c char
字符串 %s string
long %ld long类型。
double %lf double类型。

printf("age: %d", 22 +3); // 占位符
printf("name is: %s,\n 性别:%s,\n age: %d\n", "小丽", "女", 44); // 占位符 输出多个常量,要一一对应。
换行符: \r\n, \r, \n
\r回到行首; \n到下一行。

1.2 变量:经常发生改变的数据

int a = 10;
数据类型:为盒子中存储的数据,加入类型的限制。限定是整数,小数...
变量在使用之前,必须先初始化赋值。
变量名不允许重复定义。

1.3 计算机的存储规则

二进制:逢二进一,借一当二。0x01
计算机中,二进制可以表示万事万物。

数字:先转成二进制,再存储。
ASCII码表:字母先转成数字,再二进制存储。
汉字:GB2312编码、GBK编码、Unicode编码。查询对应的码表,转数字二进制,再存储。

图片:分辨率、像素、三原色(RGB)。记录每个像素的三原色,
声音存储:采样声音波形图,记录音频数据。每个采样点都进行二进制编码保存。

1.4 常见的进制

八进制(Oct):每三bit分成一组,0~7. 作为一个保存数据。 int b = 010; 以0开头。
十六进(Hex):每四bit分成一组,0~15. int c = 0xF0; 以0x开头
二进制(Bin):int a = 0b10; 以0b开头。
十进制(Dec):不要写前缀。

1.5 数据类型

  • 决定变量中能存储什么类型的数据;
  • 决定存储空间的大小。

int 占用4个字节(32个bit位)。
8个bit 称为一个字节(Byte),也是最小的存储单元。
1024字节 = 1KB
1024KB = 1MB
1024MB = 1GB ...

1.6 整数数据类型。short、int、long、long long(c99才有)。

short (-32768~ 32767 ) 占用2字节。
无符号时,范围(0~ 65535)
int (-2147483648~2147483647), 占用4字节。
无符号范围(0~ 4,294,967,295)
long (-2147483648~2147483647), 占用4字节。
long c = 1000L; // 带后缀L
printf("%ld", c); // 打印long 类型 %ld.
long long d = 2000LL; 占用8字节。
printf("%lld", d);

使用sizeof(a) 可以测量一种数据类型占用多少字节。%zu 表示打印sizeOf的测量结果。
printf("%zu", sizeof(c));
printf("%zu", sizeof(short)); // 可以直接用数据类型,来测量。

无符号整数unsigned。 有符号整数 signed(默认)。
unsigned int index = 90;
printf("%u", index); // 打印无符号整数 %u。

1.7 小数:float,double 科学计数法保存值。

float 4字节
double 8字节,C语言中,小数默认是double类型的。
long double 不常用的高精度小数。
不能和unsigned组合, unsigned只能和 整数类型组合使用。

float: 单精度小数(精确度小数点后6位),windows 占4个字节(38位)

    float f1 = 3.14F;
    printf("%f", f1);
    printf("%.2f", f1); // 保留2位小数

double 双进度(精确度小数点后15位),windows占用8个字节(308位)

double b= 1.78;
printf("%lf", b);
printf("%.2lf", b);

总结:

  • 取值范围:double > float> long long >long > int >short
  • 后缀:long(L), long long(LL), float(F)

1.8 字符类型 char,占用1字节。取值范围只能是ASCII码表里面的。

char c = 'a';
printf("%c", c);

1.9 标识符

代码中所有我们自己起的名字,比如变量名、函数名等。

  • 由数字、字母、下划线组成
  • 不能以数字开头
  • 不能是关键字。
  • 用英文单词,简明知意。全部小写,使用下划线隔开。
  • 代码的文件名:全部小写,单词间下划线分开,开头可以用数字。

1.10 键盘录入。scanf()

define _CRT_SECURE_NO_WARNINGS

include<stdio.h>

int age;
scanf("%d" , &age); // 录入整数。

char str[内存占用大小];
占用大小计算规则:

  • 英文:一个英文字母(符号或数字),占用一个字节;
  • 汉字:一个中文,默认占两个字节。
  • 结束标记(\n):1个字节。
char name[100]; // 名字输入。
scanf("%s", &name);
// 同时录入两个变量。占位符之间可以使用空格隔开。
int a, b;
scanf("%d %d", &a, &b); // 占位符和后面的变量一一对应。

2.运算符。

+ — * /
整数计算,结果一定是整数。小数部分舍弃。
小数计算,结果一定是小数。
整数和小数计算,结果一定是小数。
小数直接参与计算,结果可能不精确。

取余数的细节:

  • 1.运算的数据必须都是整数。
  • 2.结果余数的正负,跟第一个数据保持一致。
  • 3.不能对0取余。

隐式转换:把一个取值范围小的,转成取值范围大的。
short、char类型数据在运算时,先提升为int,再进行计算。
显示转换(强制转换-大变小):有可能会发送数据错误。
把取值范围大的,赋值给取值范围小的,就需要进行强制转换。
(目标数据类型) 变量名= (目标数据类型)数据;
取值范围对比:
char <short<int<long< long long<float< double

赋值运算符:

=,+=,-=,*=,/=,%=

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335