自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 ubuntu中安装中文帮助手册和全功能man手册

ubuntu中安装中文帮助手册和全功能man手册安装中文man手册sudo apt-get install manpages-zh安装全功能man手册sudo apt-get install libc-devsudo apt-get install glibc-docsudo apt-get install manpages-desudo apt-get install manpages-de-devsudo apt-get install manpages-devsudo apt-g

2021-01-28 20:40:03 516

原创 VSCODE报无法打开“printf.c”的解决方法

VSCODE报无法打开“printf.c”的解决方法在Ubuntu中使用VSCODE调试C代码时,出现如下错误 :无法打开“printf.c”: 无法读取文件’/build/glibc-YYA7BZ/glibc-2.31/stdio-common/printf.c’ (Error: 无法解析不存在的文件"/build/glibc-YYA7BZ/glibc-2.31/stdio-common/printf.c"),这是因为没有安装glibc的缘故。解决方法:需要在错误提示中的路径’/build/glibc

2020-11-29 17:29:59 2368 2

原创 网络主机发送IP数据包过程

主机发送IP数据包过程当一个拥有公网IP的主机给其它主机发送IP数据包时,首先在IP首部封装自身IP地址(源IP)和目的主机的IP地址(目的IP),实现网络层数据的封装。接下来进行数据链路层封装,数据链路层数据帧的源MAC地址是本机MAC地址,但是目的主机的MAC地址主机并不知道,所以在完成数据链路层封装前必须知道目的MAC地址。在TCP/IP协议族中,主机是通过ARP协议获取目的主机MAC地址的。假设主机A给其他主机发送IP数据,开始时主机A不知道目的主机的MAC地址,只知道目的主机的IP,主机A就发

2020-05-24 11:27:44 4064

原创 C语言结构体初始化方式

C语言结构体初始化C语言结构体初始化有以下4种方法:1、定义后初始化typedef struct { int* age; int* height; int weight;}Student;void main(){ int a = 10, b = 12; Student stu1; stu1.age = &a; st...

2020-04-20 23:10:31 964

转载 const的用法详解

转载至:const的用法详解const的用法详解有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。为了满足这一要求,可以使用const关键字对变量加以限定:const int MaxNum = 100; //班级的最大人数这样 MaxNum 的值就不能被修改了,任何对 MaxNum 赋值的行为都将引发...

2020-04-20 23:09:29 344

转载 typedef的用法详解

转载自:typedef的用法详解typedef的用法详解C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写:struct stu stu1;struct 看起来就是多余的,但不写又会报错。如果为 struct stu 起了一个别名 STU,书写起来就简...

2020-04-20 23:07:51 184

转载 函数指针——指向函数的指针

转载自:函数指针函数指针——指向函数的指针一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就是函数指针。函数指针的定义形式为:returnType (*pointerName)(...

2020-04-20 23:05:36 379

转载 二维数组指针

转载自:二维数组指针二维数组指针二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有“缝隙”。以下面的二维数组 a 为例:int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };从概念上理解,a 的分布像一个矩阵:0 1 2 34 5 6 78 9 10...

2020-04-20 23:03:13 270

转载 指针数组

转载自:指针数组指针数组如果一个数组中的所有元素都是指针,那么我们就称它为指针数组。指针数组的定义形式一般为:dataType *arrayName[length];[ ]的优先级高于*,该定义形式应该理解为:dataType *(arrayName[length]);括号里面说明arrayName是一个数组,包含了length个元素,括号外面说明每个元素的类型为dataType *。...

2020-04-20 23:01:03 134

转载 二级指针——指向指针的指针

转载自:二级指针二级指针——指向指针的指针指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的指针变量,它们的关系如下图所...

2020-04-20 22:59:55 1475

转载 指针作为函数返回值

转载自:指针作为函数返回值指针作为函数返回值C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数。下面的例子定义了一个函数 strlong(),用来返回两个字符串中较长的一个:#include <stdio.h>#include <string.h>char *strlong(char *str1, char *str2){ if...

2020-04-20 22:58:09 3727

转载 指针变量作为函数参数

转载自:指针变量作为函数参数指针变量作为函数参数在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过...

2020-04-20 22:56:54 922

转载 字符串指针——指向字符串的指针

转载自:字符串指针字符串指针——指向字符串的指针C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这在《C语言字符数组和字符串》中已经进行了详细讲解,这里不妨再来演示一下:#include <stdio.h>#include <string.h>int main(){ char str[] = "http://c.bianche...

2020-04-20 22:54:54 1360

转载 数组指针——指向数组对象的指针

转载自:数组指针数组指针——指向数组对象的指针数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示:定义数组时,要给出数组名和数组长度,数组名可以认为是一个指针,它指向...

2020-04-20 22:52:49 4630

转载 指针变量的运算

转载至:指针变量的运算指针变量的运算指针变量保存的是地址,而地址本质上是一个整数,所以指针变量可以进行部分运算,例如加法、减法、比较等,请看下面的代码:#include <stdio.h>int main(){ int a = 10, *pa = &a, *paa = &a; double b = 99.9, *pb = &b...

2020-04-20 22:43:51 520

转载 C语言指针

转载自:C语言指针C语言指针1 指针简介计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是 4G 内存中每个字节的编号(以十六进制表示):我们将内存中字节的编号称为地址(...

2020-04-20 22:39:15 180

转载 C语言运算符优先级和结合性

运算符优先级和结合性转载至:C语言运算符优先级和结合性一览表运算符优先级和结合性一览表上表中可以总结出如下规律:结合方向只有三个是从右往左,其余都是从左往右。所有双目运算符中只有赋值运算符的结合方向是从右往左。另外两个从右往左结合的运算符也很好记,因为它们很特殊:一个是单目运算符,一个是三目运算符。C语言中有且只有一个三目运算符。逗号运算符的优先级最低,要记住。此外要记住,对...

2020-04-20 20:51:33 540

原创 do{}while(0)实现宏定义

do{}while(0)实现宏定义在定义宏尤其是定义多语句宏时,经常会看见如下定义:#define compute(a,b) do {add(a,b);sub(a,b);} while(0)这样定义的宏有2个好处,它可以不受大括号、分号的影响,不论在什么情况下使用宏,宏都可以按照定义者的原本设计运行而不会出错;同时可以避免出现空的宏定义。在定义多语句宏时,经常会出现分号导致运行结果出...

2020-04-18 20:57:37 862

原创 C28x DSP程序加载与运行

C28x DSP程序加载与运行文章目录C28x DSP程序加载与运行1 C28x DSP程序加载和运行1.1 程序加载1.1.1 加载地址和运行地址1.1.2 引导加载程序1.2 程序入口地址1.3 Run-Time初始化1.3.1 _c_int00()函数1.3.2 RAM模型与ROM模型1.3.2.1 在运行时自动初始化变量(——rom_model)1.3.2.2 加载时初始化变量(——ra...

2020-04-17 22:58:17 2594 1

原创 C语言Sizeof()

C语言数据类型C语言数据类型sizeof运算快捷键有助于目录的生成文本的样式链接与图片插入一段漂亮的代码片生成一个列表创建表格Pants创建一个列表创建一个注脚注释甘特图功能,丰富你的文章图表流程图导入出入C语言数据类型C语言中在使用一个变量前需要对变量进行声明,声明的同时要确定变量的数据类型。C语言中的数据类型有:char、 short、 int、 long、 long longflo...

2020-03-29 21:57:07 6527 1

原创 TI链接器命令文件入门

TI链接器命令文件入门目录文章目录TI链接器命令文件入门目录介绍Memeory 指令内存页内存属性代码内存分配数据内存分配SECTIONS指令示意图词汇表Sector命名约定Sector存储特性Sector语法说明输出Sector格式输出Sector的内存分配内存范围中的第一个输出Sector分配到多个内存范围在多个内存范围内拆分输出Sector无效的Sector不加载SectorFLASH加...

2020-03-29 10:38:40 1465

转载 MDK5新建工程

文章目录一、MDK简介二、建立STM32工程模板一、MDK简介MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌入式开发工程师使用。目前最新版本为:MDK5.14,该版本使用 uVision5 IDE 集成开发环境,是目前针对 ARM 处理...

2018-11-27 15:40:08 3474

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除