嵌入式—— C基础

这篇博客介绍了C语言的基础知识,包括使用vi编辑器的三种模式,helloworld程序,gcc编辑器的使用,以及数据的存储方式,如不同进制的转换。此外,还涵盖了词法符号、数据类型、原码反码补码转换和常量的概念。
摘要由CSDN通过智能技术生成

目录

一. vi编辑器

1. 打开 vi 编辑器

2. vi 编辑器的三种模式

2.1 命令行模式

2.2 插入模式

2.3 底行模式

3. 命令行模式常用的操作

4. 底行模式常用操作

二. helloworld 程序说明

三. gcc 编辑器

四. 编译方式

4.1 简单明了

4.2 自定义可执行文件名

4.3 按照流程分布编译

五. 计算机中数据的存储

5.1 数据型数据的存储

5.1.1 十进制

5.1.2 二进制

5.1.3 八进制

5.1.4 十六进制

5.2 非数值型数据的存储

六. 词法符号

6.1 关键字

6.2 标识符

七. 数据类型

7.1 C 语言的本质

7.2 内存分配的最小单位

7.3 数据类型的作用

7.4 数据类型的分类

7.5 整数类型

7.5.1 char类型

7.5.2 short类型

7.5.3 int类型

7.5.4 long类型

7.5.5 long long类型

7.6 实型

7.7 空类型

八. 原码反码补码转换的问题

九. 常量

9.1 概念

9.2 分类

9.3 整形常量

9.4 实型常量

9.5 指数常量(了解)

9.6 字符常量

9.7 字符串常量

9.8 标识常量


一. vi编辑器

1. 打开 vi 编辑器

vi 文件名 将文件在vi编辑器中打开,如果文件存在,直接打开,如果文件不存在,会新建并打开。

2. vi 编辑器的三种模式

2.1 命令行模式

打开一个文件默认的就是在命令行模式下,命令行模式一般是用来复制和粘贴代码的。其他模式下按 esc 按键就可以回到命令行模式。

2.2 插入模式

插入模式才是能用来插入文本的,进入插入模式的方式:

在命令行模式下:

i 在光标前开始插入

I (大写的i)在光标所在行的行首开始插入

a 在光标后开始插入

A 在光标所在行的行尾开始插入

o 在光标所在行下面新起一行开始插入

O 在光标所在行上面新起一行开始插入

2.3 底行模式

在命令行模式下 输入冒号 : 就进入了底行模式

底行模式主要是用来保存退出的

:w 保存

:q 退出

:wq 保存并退出

:q! 不保存强制退出

3. 命令行模式常用的操作

方向键:h(左) j(下) k(上) l(右)

yy 复制光标所在行

p 在光标所在行下面开始粘贴

P 在光标所在行上面开始粘贴

nyy n是一个数字,表示从光标所在行开始 复制n行

dd 剪切光标所在行

ndd n是一个数字,表示从光标所在行开始 剪切n行

gg 将光标定位到文件开头

G 将光标定位到文件结尾

ngg n是一个数字,表示将光标定位到第n行

u 撤销上一步的操作 ctrl + r 重做(反撤销)

/word 在全文中高亮显示所有的单词word 按n键跳转到下一个 N键跳转到上一个

shift zz 保存退出 等同于 :wq

4. 底行模式常用操作

:w 保存

:q 退出

:wq 保存并退出

:q! 不保存强制退出

:vsp 文件名 左右分屏打开说个文件同时编辑

:wqa 保存退出所有已经打开的文件

:set nonumber 取消显示行号

:set nonu 也可以

:set number 显示行号

:set nu 也可以

:noh 取消查找后的高亮显示

:%s/aa/bb/g 将全文的aa都替换成bb

:%s/aa/bb/gc 将全文的aa都替换成bb,每次替换会询问 y替换 n不替换

:m,ns/aa/bb/g 将第m行到第n行的所有aa替换成bb

二. helloworld 程序说明

#include <stdio.h>

// # 以#号开头的行 称为 预处理行

// #include 表示要包含头文件

// stdio 是指 standard input & output (标准输入输出)

// stdio.h 是标准输入输出的头文件 我们使用的 printf 就是在这个头文件里声明的

//int 函数的返回值类型 --先不用管

//main 主函数 每一个程序必须有且仅有一个

//main函数是程序的入口

// ()圆括号 []方括号 {}花括号 //() 里面的是main函数的参数 先不用管 不写也可以 但是 ()必须要写

int main(int argc, const char *argv[]) {

//{} 内部的语句称为 函数体 也就是程序要执行的代码

//printf 是系统给我们提供的输出的函数

//功能就是将要输出的内容 打印到终端

//"" 引住的就是要输出的内容 \n 表示换行的意思 就是回车

printf("hello wrold\n");

//C语言中每条指令后面都要有一个 分号 ;

//函数的返回值 先不用管

return 0; }

//单行注释

/* 多行 注释 */

#if 0 多行 注释 #endif

三. gcc 编辑器

编程语言分为 编译型语言 和 解释型语言。

编译型语言:就是在执行之前,需要专门有一个编译的过程,

将人类能识别的高级语言转换成方便计算机识别的低级语言。

优点:运行之前已经编译过了,每次运行无需重新编译,执行效率相对较高。

缺点:依赖于编译器,跨平台性相对较差。

例如:C C++ 都是编译型语言。

解释型语言:无需在执行之前单独编译,而是在执行的过程中,由解释器来逐行翻译给计算机看

又叫做 脚本语言

优点:跨平台性相对较好。

缺点:每次执行都需要解释器逐行翻译,执行效率相对较低。

例如:shell python都是解释型语言。

所谓的编译器就是,能将高级语言翻译成低级语言的一个工具。

我们linux系统中 C语言的编译器使用的是 gcc

四. 编译方式

4.1 简单明了

gcc xxx.c xxx.c是你的 .c 文件名

这种编译方式会在当前路径下生成一个 名字叫做 a.out 的可执行文件

使用 ./a.out 就可以执行它了。

4.2 自定义可执行文件名

gcc xxx.c -o 要生成的可执行文件名

这种编译方式默认会在当前路径下生成一个 自己指定的名字的 可执行文件

4.3 按照流程分布编译

预处理-->编译-->汇编-->链接

1.预处理:头文件的展开、注释的删除、宏定义的替换

gcc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
宋宝华嵌入式 C/C++语言精华文章集锦 C/C+语言 struct 深层探索 ............................................................................2 C++中 extern "C"含义深层探索........................................................................7 C 语言高效编程的几招...............................................................................11 想成为嵌入式程序员应知道的 0x10 个基本问题 .........................................................15 C 语言嵌入式系统编程修炼...........................................................................22 C 语言嵌入式系统编程修炼之一:背景篇 ............................................................22 C 语言嵌入式系统编程修炼之二:软件架构篇 ........................................................24 C 语言嵌入式系统编程修炼之三:内存操作 ..........................................................30 C 语言嵌入式系统编程修炼之四:屏幕操作 ..........................................................36 C 语言嵌入式系统编程修炼之五:键盘操作 ..........................................................43 C 语言嵌入式系统编程修炼之六:性能优化 ..........................................................46 C/C++语言 void 及 void 指针深层探索 .................................................................50 C/C++语言可变参数表深层探索 .......................................................................54 C/C++数组名与指针区别深层探索 .....................................................................60 C/C++程序员应聘常见面试题深入剖析(1) ..............................................................62 C/C++程序员应聘常见面试题深入剖析(2) ..............................................................67 一道著名外企面试题的抽丝剥茧 ......................................................................74 C/C++结构体的一个高级特性――指定成员的位数 .......................................................78 C/C++中的近指令、远指针和巨指针 ...................................................................80 从两道经典试题谈 C/C++中联合体(union)的使用 ......................................................81 基于 ARM 的嵌入式 Linux 移植真实体验 ................................................................83 基于 ARM 的嵌入式 Linux 移植真实体验(1)――基本概念 ...........................................83 基于 ARM 的嵌入式 Linux 移植真实体验(2)――BootLoader .........................................96 基于 ARM 的嵌入式 Linux 移植真实体验(3)――操作系统 ..........................................111 基于 ARM 的嵌入式 Linux 移植真实体验(4)――设备驱动 ..........................................120 基于 ARM 的嵌入式 Linux 移植真实体验(5)――应用实例 ..........................................135 深入浅出 Linux 设备驱动编程 .......................................................................144 1.Linux 内核模块..............................................................................144 2.字符设备驱动程序 ...........................................................................146 3.设备驱动中的并发控制 .......................................................................151 4.设备的阻塞与非阻塞操作 .....................................................................157

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值