嵌入式学习——C语言基础——day2

1. gcc的编译过程

1.1 预处理

        处理和 " # " 相关的代码

        gcc -E filename.c -o filename.i

        1. 头文件

        2. 宏定义

        3. 条件编译  

1.2 编译

        将c语言代码编译成汇编代码

        gcc -S filename.c -o filename.s

1.3 汇编

        将汇编代码编译成二进制代码

        gcc -c filename.c -o filename.o 

1.4 链接

        将多个二进制代码链接成一个可执行代码

        gcc filename.c o filename

2. 进制转换

2.1  二进制、八进制、十六进制   ->   十进制    对应位 * 对应位的权值再求和

2.2  十进制  ->  二进制、八进制、十六进制      十进制数除以进制数得到的余数逆序排列

2.3  八进制一位对应二进制三位

       十进制一位对应二进制四位

3. 数据的存储

3.1 正数存对应的补码(与原码相同)储存在内存中

3.2 负数经过原码、反码、补码存储在内存中

        -123(先去掉符号位)

        原码:111 1011

        反码:000 0100

        补码:000 0101

4. 基本数据类型

4.1 整形(short  int  long)

        signed short        -2^15 ~ 2^15-1

        unsigned short        0 ~ 2^16-1

        signed int        -2^31 ~ 2^31-1

        unsigned int        0 ~ 2^32-1

        signed long        -2^63 ~ 2^63-1

        unsigned long        0 ~ 2^64-1

4.2 字符型

        signed char        -128 ~ 127

        unsigned char        0 ~ 255

        存储字符在ASCII码表中对应的二进制数到内存中

4.3 浮点型(浮点数类型均为有符号,没有无符号类型)

        float            4字节        存储类型(1符号位+8指数位+23尾数位)    

        double        8字节        存储类型(1符号位+11指数位+52尾数位)

                浮点数 -> 转换成为对应的二进制形式 -> 二进制科学计数法形式 
                -> 获得尾数位(小数点后) -> 获得指数位(+127 float  +1024 double ) 
                -> 存入浮点数类型中(float: 1符号位 + 8指数位 + 23尾数位    double: 1符号位 + 11指数位 + 52尾数位)

4.4 缺省类型(void)

4.5 bool类型(逻辑类型)

5. 构造数据类型

6. 变量和常量

6.1 常量:在程序运行过程中值不能被改变的量称为常量

        1. 整形常量(默认为signed int)

        2. 浮点型常量(默认为double)

        3. 字符型常量

        4. 字符串常量

        5. 标识常量(宏定义)

6.2 变量:在程序运行过程中值可以发生改变的量称为变量

        1. 变量名要求

                1.变量名只能由字母、数字、下划线构成,不能以数字开头
                2.变量名不要与C语言关键字重名
                3.变量名最好不要与库函数重名
                4.变量名最好是见名知意

        2. 变量初始化

                定义变量的时候为变量赋初值

注意:

                    0       :  0               -> 0000 0000
                    '0'     :  字符0    -> 48  -> 0011 0000
                    '\0'    :  字符\0   ->  0  -> 0000 0000

                    '\0' 和 0 是等价的
                    '0' 和 48 是等价的

                

        

        

                 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/623821.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序-绘制图片并分享下载(painter)

1、引入painter插件 painter官网地址 1.1 可通过官网的方法引入painter插件, 官方插件下载地址 1.2 可下载本文附带的插件包直接引入 1.2.1 复制下载下来的文件中的painter文件夹,将其放在components目录下 1.2.2 页面中引入并使用 .json {"…

刷穿力扣006-剑指offer一数组——02寻找目标值-二维数组

刷穿力扣006-剑指offer<一>数组——02寻找目标值-二维数组 基本面试题都是我带大家刷的力扣热题100和剑指offer的75道题&#xff0c;建议刷两遍&#xff01;&#xff08;ps:想找工作实习的同学&#xff0c;文末有面试八股和简历模板&#xff09; 题目&#xff1a; 语言…

408数据结构,怎么练习算法大题?

其实考研的数据结构算法题是有得分技巧的 得分要点 会写结构定义&#xff08;没有就自己写上&#xff09;写清楚解题的算法思想描述清楚算法实现最后写出时间和空间复杂度 以上这四步是完成一道算法题的基本步骤&#xff0c;也是其中得分的主要地方就是后面两步。但是前面两…

四.吊打面试官系列-数据库优化-Mysql锁和事务原理

前言 本篇文章主要讲解两块内容&#xff1a;Mysql中的锁和ACID原理&#xff0c;这2个部分是面试的时候被问的蛮多的看完本篇文章之后相信你对Mysql事务会有更深层次的理解&#xff0c;如果文章对你有所帮助请记得好评 一.Mysql中的锁 1.锁的分类 在Mysql中锁也分为很多种&a…

Vue3 ts环境下的PropType

简介 在Typscript中&#xff0c;我们可以使用PropType进行类型的推断与验证。在日常的开发中我们常常会遇到下面这样的场景&#xff1a; 我们通过request请求从服务端获取了一条数据&#xff0c;数据是个Array的格式&#xff0c;Array中的每个元素又是一个对象&#xff0c;像下…

EDI是什么:EDI系统功能介绍

EDI全称Electronic Data Interchange&#xff0c;中文名称是电子数据交换&#xff0c;也被称为“无纸化贸易”。EDI实现企业间&#xff08;B2B&#xff09;自动化通信&#xff0c;帮助贸易伙伴和组织完成更多的工作、加快物流时间并消除人为错误。 目前国内企业实现EDI通信大多…

判断位数、按位输出、倒序输出(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int number 0;int i 1;int m 0;int z 0;int z1 0, z2 0, z3 0, z4 0;//提示用户&#xff1b;printf("请输…

Python疑难杂症(17)---介绍Python的pandas模块特点、安装以及series的创建和元素值的获取等。对于一维数据和使用有了初步的概念

1、定义 什么是Pandas&#xff1a;Pandas是Python中用于数据分析和挖掘的基础模块&#xff0c;它提供了丰富的功能和方法&#xff0c;使用 Pandas 包可以完成数据读入、数据清洗、数据准备、图表呈现等内容&#xff0c;使普通的非数据专业人员也能够处理和分析大型数据集&…

Kotlin从0到1,让你一周快速上手!!

声明 大家好&#xff0c;这里是懒羊羊学长&#xff0c;如果需要pdf版以及其他资料&#xff0c;请加入群聊。群里每天更新面经、求职资料&#xff0c;经验分享等&#xff0c;大家感兴趣可以加一下。 Kotlin 声明1.Kotlin基础2. Kotlin函数3.Kotlin进阶4.Kotlin集合5.Kotlin高…

【JavaSE】搞定String类

前言 本篇会细致讲解String类的常见用法&#xff0c;让小伙伴们搞定String类~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 常用的三种字符串构造 字符串长度length 字符串比较 比较 比较字符串的内容equals…

Mac版2024 CleanMyMac X 4.15.2 核心功能详解 cleanmymac这个软件怎么样?cleanmymac到底好不好用?

近些年伴随着苹果生态的蓬勃发展&#xff0c;越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现&#xff0c;它的使用逻辑与Windows存在很多不同&#xff0c;而且随着使用时间的增加&#xff0c;一些奇奇怪怪的文件也会占据有限的磁盘空间&#xff0c;进而影响使用…

HTTP协议安全传输教程

HTTP协议有多个版本&#xff0c;包括但不限于HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2和HTTP/3。这些版本各自具有不同的特点和改进&#xff0c;以适应网络技术的发展和满足不同的需求。例如&#xff0c;HTTP/1.0使用文本格式传输数据&#xff0c;简单易用且兼容性好&#xff0c;…