自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式开发工程师---欢迎大家一起交流

比你有优秀的人,往往比你更加努力。 嵌入式QQ交流群:143847203 大学生C/C++QQ交流群:668630265

原创 【Linux】一步一步学Linux系统编程教程汇总(更新中......)

00. 目录文章目录00. 目录00. 文件操作01. 进程概念02. 进程间通信03. 多线程04.05.06.07.08.00. 文件操作01. 进程概念02. 进程间通信03. 多线程04.05.06.07.08....

2020-01-09 20:29:41 6026 2

原创 【Linux】一步一步学Linux系列教程汇总(更新中......)

00. 说明本博客持续更新,敬请关注。01. Linux概述【Linux】一步一步学Linux——Linux发展史(01)【Linux】一步一步学Linux——Unix发展史(02)【Linux】一步一步学Linux——Linux版本(03)...

2019-07-04 23:57:03 42539 69

原创 【Tools】VMware Workstation 15.5 Pro安装详解

00. 目录文章目录00. 目录01. VMware Workstation 15.5简介02. VMware Workstation 15.5功能03. VMware Workstation 15.5下载04. VMware Workstation 15.5安装05. 附录01. VMware Workstation 15.5简介VMware Workstation Pro 凭借最广泛的操作系统支持、丰富的用户体验、全面的功能组合以及出色的性能,将虚拟化提升到了更高的级别。 VMware Works

2020-08-11 17:59:59 831

原创 【ARM】Tiny4412裸板编程之ADC

00. 目录文章目录00. 目录01. 开发环境02. ADC概述03. ADC特性04. ADC模块图05. ADC寄存器06. ADC电路连接07. 程序示例08. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. ADC概述10位或12位CMOS再循环式模拟数字转换器,它具有10通道输入,并可将模拟量转换至10位或12位二

2020-08-08 11:53:05 828

原创 【ARM】Tiny4412裸板编程之静态库(libc.a)

00. 目录文章目录00. 目录01. 开发环境02. 概述03. 库的来源04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 概述libc是Linux下的ANSI C的函数库。ANSI C是基本的C语言函数库,包含了C语言最基本的库函数。这个库可以根据 头文件划分为 15 个部分,其

2020-08-07 21:12:18 1237

原创 【ARM】Tiny4412裸板编程之 printf函数

00. 目录文章目录00. 目录01. 开发环境02. printf概述03. Uboot中printf函数04. 程序示例一05. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. printf概述printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:i

2020-08-07 17:53:35 121

原创 【ARM】Tiny4412裸板编程之按键(C语言)

00. 目录文章目录00. 目录01. 开发环境02. 控制原理03. 配置寄存器04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 控制原理试过了GPIO的输出功能,再来测试下GPIO的输入功能。开发板上有四个用户按键,使用这四个按键来控制四个LED的状态。咱们的按键在底板上,所以需

2020-08-07 16:18:57 87

原创 【ARM】Tiny4412裸板编程之蜂鸣器(C语言)

00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的蜂鸣器在底板上,所以需要看底板的原理图打开底板原理图(Tiny4412SDK-1506-Schematic.pdf)由上图可知,Tiny4412有1个蜂鸣器,控制它们四个引脚分别是GPD0_0,由原理可知,当IO引脚为高电平时,蜂鸣器就响,当IO引脚为低电平时蜂鸣器就不响了。我们要做的工作就是设置GPD0_0为输出功能,且控制且输出电平高低

2020-08-07 15:08:04 94

原创 【ARM】Tiny4412裸板编程之LED(C语言)

00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 程序实例四07. 附录01. 控制原理咱们的LED在核心板上,所以需要看核心板的原理图打开核心板原理图(Tiny4412-1412-Schematic.pdf)由上图可知,Tiny4412有4个用户LED灯,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_

2020-08-07 14:45:09 101

原创 【ARM】Tiny4412裸板编程之按键

00. 目录文章目录00. 目录01. 开发环境02. 控制原理03. 配置寄存器04. 程序示例一05. 程序示例二06. 附录01. 开发环境开发板:Tiny4412SDK标准版 「Tiny4412 SDK 1506」工具:「arm-linux-gcc-4.5.1」 「minicom」 「dnw」平台:Ubuntu 20.0402. 控制原理试过了GPIO的输出功能,再来测试下GPIO的输入功能。开发板上有四个用户按键,使用这四个按键来控制四个LED的状态。咱们的按键在底板上,所以需

2020-08-06 11:24:04 80

原创 【ARM】Tiny4412裸板编程之蜂鸣器

00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的蜂鸣器在底板上,所以需要看底板的原理图打开底板原理图(Tiny4412SDK-1506-Schematic.pdf)由上图可知,Tiny4412有1个蜂鸣器,控制它们四个引脚分别是GPD0_0,由原理可知,当IO引脚为高电平时,蜂鸣器就响,当IO引脚为低电平时蜂鸣器就不响了。我们要做的工作就是设置GPD0_0为输出功能,且控制且输出电平高低

2020-08-06 10:14:27 92

原创 【ARM】Tiny4412裸板编程之LED(二)

00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的LED在核心板上,所以需要看核心板的原理图打开核心板原理图(Tiny4412-1412-Schematic.pdf)由上图可知,Tiny4412有4个用户LED灯,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_0~ GPM4_3

2020-08-05 17:13:52 1370

原创 【IT资讯】TIOBE - 2020年8月编程语言排行

欢迎来到每月的编程语言排行版,8月TIOBE指数没有多大变化。编程语言R继续增加,并有望按计划成为2020年TIOBE的编程语言。C语言仍在榜首的位置可以说是意料之中,Java虽然还是第二但较上月减少了1.60%,Python也稳稳的排在第三的位置。接下来我们看看8月榜单吧!TIOBE 8月 TOP 20 编程语言:跟随在Go,Swift和SQL之间在TIOBE索引中不断争夺排名10的争夺也很有趣。Swift本月损失了2个职位(从第10名到第12名)。SQL接管了,这次又回到了前十名。TOP 10

2020-08-05 14:45:29 158

原创 【ARM】Tiny4412裸机编程之LED(一)

00. 目录文章目录00. 目录01. 控制原理02. 配置寄存器03. 程序示例一04. 程序示例二05. 程序示例三06. 附录01. 控制原理咱们的LED在核心板上,所以需要看核心板的原理图打开核心板原理图(Tiny4412-1412-Schematic.pdf)由上图可知,Tiny4412有4个用户LED灯,控制它们四个引脚分别是GPM4_0~ GPM4_3,由原理可知,当IO引脚为高电平时,LED灯灭,当IO引脚为低电平时LED亮。我们要做的工作就是设置GPM4_0~ GPM4_3

2020-08-04 17:19:24 120

原创 【ARM】Tiny4412裸机编程之GPIO简介

00. 目录文章目录00. 目录01. GPIO概述02. GPIO寄存器03. GPIO框图04. 附录01. GPIO概述GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平、或者通过它们读入引脚的状态──是高电平还是低电平。在嵌入式系统中常常有数量众多,但是结构却比简单的外部设备/电路,对这些设备/电路,有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有

2020-08-04 16:31:09 124

原创 【ARM】Tiny4412裸板编程之Chip ID

00. 目录文章目录00. 目录01. Chip ID概述02. 寄存器介绍03. 程序示例04. 编译执行05. 附录01. Chip ID概述The Exynos 4412 SCP includes a Chip ID block for the Software (SW) that sends and receives AdvancedPeripheral Bus (APB) interface signals to the bus system.Exynos 4412 SCP包含一个用

2020-08-04 11:38:28 160

原创 【ARM】在Uboot中运行第一个汇编程序

00. 目录文章目录00. 目录01. 汇编程序02. 编译03. 下载执行04. 文件对比05. 程序示例二06. 附录01. 汇编程序汇编程序 .section .rodata .align 2.LC0: .string "hello arm\n" .section .text .align 2 .global _start_start: stmfd sp!, {lr} ldr r0, =.LC0 mov lr, p

2020-08-04 11:04:36 1347

原创 【IT资讯】Linux Kernel 5.8 正式版发布

Linux Kernel 5.8 已经发布。相较上一个 RC,此版本主要更新了驱动程序,增加了对一系列 Adreno GPU 芯片(如 405、640 和 650 版本)的支持,新的 Spectre 补丁以及 exFAT 改进。Radeon 驱动在此版本中也得到了更好的支持,POWER10 芯片也得到了改进。Linus Torvalds发布了最新的Linux 5.8版系统内核。记得是一个半月前宣布了新版发布,没想到这次不仅进展超快,而且变化非常之大!正如Torvalds在6月时所说,Linux内核5.8

2020-08-04 09:51:04 1328 3

原创 【嵌入式】C语言中volatile关键字

00. 目录文章目录00. 目录01. volatile概述02. volatile应用场景03. volatile应用示例04. 嵌入式系统中应用05. volatile官方说明volatile06. 附录01. volatile概述volatile是C语言中的一个关键字。将变量定义为volatile就表示告诉编译器这个变量可能会被竟想不到地改变,在这种情况下,编译器就不会去假设这个变量的值了,及优化器在用到这个变量是必须每次重新读取他的值。02. volatile应用场景在程序中,volati

2020-07-31 16:37:33 205

原创 【嵌入式】C语言程序调试和宏使用的技巧

00. 目录文章目录00. 目录01. 调试相关的宏02. # 字符串化操作符03. ## 连接操作符04. 调试宏第一种形式05. 调试宏的第二种定义方式06. 对调试语句进行分级审查07. 条件编译调试语句08. 使用do...while的宏定义09. 代码剖析10. 附录01. 调试相关的宏在Linux使用gcc编译程序的时候,对于调试的语句还具有一些特殊的语法。gcc编译的过程中,会生成一些宏,可以使用这些宏分别打印当前源文件的信息,主要内容是当前的文件、当前运行的函数和当前的程序行。具体宏

2020-07-30 16:08:59 2002 1

原创 【Linux网络编程】并发服务器之select模型

00. 目录文章目录00. 目录01. 概述02. I/O复用技术概述03. select模型服务器实现思路04. select模型服务器实现05. 附录01. 概述服务器设计技术有很多,按使用的协议来分有 TCP 服务器和 UDP 服务器,按处理方式来分有循环服务器和并发服务器。循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型循环服务器:服务器在同一时刻只能响应一个客户端的请

2020-07-29 11:49:20 339

原创 【Linux网络编程】并发服务器之多线程模型

00. 目录文章目录00. 目录01. 概述02. 多线程服务器03. 多线程服务器实现思路04. 多线程服务器实现05. 附录01. 概述服务器设计技术有很多,按使用的协议来分有 TCP 服务器和 UDP 服务器,按处理方式来分有循环服务器和并发服务器。循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型循环服务器:服务器在同一时刻只能响应一个客户端的请求。并发服务器:服务器在

2020-07-29 11:42:06 212

原创 【Linux网络编程】并发服务器之多进程模型

00. 目录文章目录00. 目录01. 概述02. 多进程并发服务器03. 多进程并发服务器实现思路04. 多进程并发服务器实现05. 附录01. 概述服务器设计技术有很多,按使用的协议来分有 TCP 服务器和 UDP 服务器,按处理方式来分有循环服务器和并发服务器。循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型循环服务器:服务器在同一时刻只能响应一个客户端的请求。并发服务

2020-07-29 11:24:04 238

原创 【Linux网络编程】循环服务器之TCP模型

00. 目录文章目录00. 目录01. 概述02. TCP循环服务器实现方法03. TCP循环服务器模型04. TCP循环服务器实现05. 附录01. 概述服务器设计技术有很多,按使用的协议来分有 TCP 服务器和 UDP 服务器,按处理方式来分有循环服务器和并发服务器。循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型循环服务器:服务器在同一时刻只能响应一个客户端的请求。

2020-07-29 10:57:40 223

原创 【Linux网络编程】循环服务器之UDP循环模型

00. 目录文章目录00. 目录01. 概述02. UDP 循环服务器的实现方法03. UDP循环服务器模型04. UDP循环服务器实现05. 附录01. 概述服务器设计技术有很多,按使用的协议来分有 TCP 服务器和 UDP 服务器,按处理方式来分有循环服务器和并发服务器。循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器(多对一),为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型循环服务器:服务器在同一时刻只能响应一个客户端的请求

2020-07-29 10:49:32 199

原创 【Linux网络编程】TCP三次握手和四次挥手

00. 目录文章目录00. 目录01. 三次握手02. 四次挥手03. 三次握手和四次挥手原因04. 2MSL05. 附录01. 三次握手在 TCP/IP 协议中,TCP 协议提供可靠的连接服务,采用三次握手建立一个连接。三次握手的过程:第一步: A 的 TCP 向 B 发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x。第二步 B 的 TCP 收到连接请求报文段后,如同意,则发回确认。B 在确认报文段中应使 SYN

2020-07-28 15:20:44 381

原创 【Linux网络编程】TCP网络编程中connect listen和accept三者之间的关系

00. 目录文章目录00. 目录01. TCP服务端和客户端流程02. connect函数03. listen函数04. 三次握手05. accept函数06. 附录01. TCP服务端和客户端流程02. connect函数对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知 Linux 内核,让 Linux 内核自动完成 TCP 三次握手连接,最后把连接的结果返回给这个函数的

2020-07-28 15:13:11 243

原创 【Linux网络编程】TCP编程

00. 目录文章目录00. 目录01. TCP概述02. TCP特点03. TCP中CS架构04. TCP相关函数05. TCP服务端示例06. TCP客户端示例07. 附录01. TCP概述传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP

2020-07-28 15:06:02 213

原创 【Linux网络编程】组播

00. 目录文章目录00. 目录01. 组播概述02. 组播应用分类03. 组播地址04. 组播地址与 MAC 地址的关系05. 套接字选项06. 程序示例07. 附录01. 组播概述单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。IP 多播(也称多址广播或组播)技术,是一种允许一台或多台主

2020-07-27 11:41:50 217

原创 【Linux网络编程】广播地址介绍

00. 目录文章目录00. 目录01. 广播地址概述02. 广播地址分类03. 四种IP广播地址04. 广播和地址05. 附录01. 广播地址概述广播地址(Broadcast Address)是专门用于同时向网络中(通常指同一子网)所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID(简称主机 ID) 为全 1 的 IP 地址为广播地址,广播的分组传送给同一个子网的所有计算机。例如,对于10.1.1.0 (255.255.255.0 )网段,其广播地址为10.1.1

2020-07-27 11:05:47 583

原创 【Linux网络编程】广播

00. 目录文章目录00. 目录01. 广播概述02. 广播地址分类03. 广播的特点04. setsockopt函数05. 程序示例06. 附录01. 广播概述在生活中广播无处不在,像平时在大街上卖物品的商人,在进行推广产品的时候往往都是使用一个喇叭来进行吆喝:“十块钱买不了吃亏,十块钱买不了上当,走过路过千万不要错过”,这就是广播。那么在网络中的广播又是什么样子的呢?网络上的广播指:由一台主机向该主机所在子网内(同一个局域网)的所有主机发送数据的方式。如下图的 1 号主机广播给 2、3、4、

2020-07-27 10:51:11 218

原创 【C语言】枚举类型

00. 目录文章目录00. 目录01. 枚举概述02. 枚举三种用法03. 枚举的本质04. 枚举与宏05. 枚举在Linux内核中应用06. 使用枚举需要注意的问题07. 附录01. 枚举概述**枚举(enum)**是C语言的一种特殊类型。当我们在编程中遇到定义一些固定长度或范围的数值时,可以考虑使用枚举类型。使用枚举可以让我们的程序可读性更强、看起来更加直观。举个例子,如果我们在编程中需要使用数字0-6分别表示星期日-星期六,程序的可读性就不高,我们需要翻手册或者看程序注释才能知道每个数字具体代表

2020-07-09 20:33:21 472

原创 【嵌入式】C语言高级编程-可变参数宏(12)

00. 目录文章目录00. 目录01. 可变参数宏概述02. ##符号03. 可变参宏另外一种写法04. 内核中的可变参数宏05. 附录01. 可变参数宏概述#include <stdarg.h>void va_start(va_list ap, last);type va_arg(va_list ap, type);void va_end(va_list ap);void va_copy(va_list dest, va_list src);Linux平台可能的实现/*

2020-07-09 17:44:07 407

原创 【嵌入式】C语言高级编程-内建函数(11)

00. 目录文章目录00. 目录01. 内建函数概述02. 常用内建函数03. C 标准库的内建函数04. 内核中的 likely 和 unlikely05. 附录01. 内建函数概述内建函数,顾名思义,就是编译器内部实现的函数。这些函数跟关键字一样,可以直接使用,无须像标准库函数那样,要 #include 对应的头文件才能使用。内建函数的函数命名,通常以 __builtin 开头。这些函数主要在编译器内部使用,主要是为编译器服务的。内建函数的主要用途如下。用来处理变长参数列表;用来处理程序运

2020-07-09 17:29:46 411

原创 【嵌入式】C语言高级编程-内联函数(10)

00. 目录文章目录00. 目录01. 属性声明02. 内联函数概述03. 内联函数与宏04. 编译器对内联函数的处理05. static修饰内联函数06. 附录01. 属性声明attribute 属性声明,attribute可以说是 GNU C 最大的特色。我们接下来继续讲一下跟内联函数相关的两个属性:noinline 和 always_inline。这两个属性的用途是告诉编译器:编译时,对我们指定的函数内联展开或不展开。它们的使用方法如下。static inline __attribute__

2020-07-09 16:28:02 440

原创 【嵌入式】C语言高级编程-强符号和弱符号(09)

00. 目录文章目录00. 目录01. weak属性02. 变量强符号和弱符号03. 函数强符号和弱符号04. 弱符号的作用05. alias属性06. 附录01. weak属性GNU C 通过 attribute 声明weak属性,可以将一个强符号转换为弱符号。用法:void __attribute__((weak)) func(void);int num __attribte__((weak);编译器在编译源程序时,无论你是变量名、函数名,在它眼里,都是一个符号而已,用来表征一个

2020-07-09 16:06:34 415

原创 【嵌入式】C语言高级编程-变参函数(08)

00. 目录文章目录00. 目录01. format属性声明02. 变参函数的设计思路03. 变参函数宏04. 应用示例05. 附录01. format属性声明GNU 通过 attribute 扩展的 format 属性,用来指定变参函数的参数格式检查。用法如下:__attribute__(( format (archetype, string-index, first-to-check)))void LOG(const char *fmt, ...) __attribute__((forma

2020-07-09 12:00:58 725

原创 【嵌入式】C语言高级编程-地址对齐(07)
原力计划

00. 目录文章目录00. 目录01. 数据对齐概述02. 数据需要对齐的原因03. 属性声明: aligned04. 结构体对齐05. 附录01. 数据对齐概述一般情况下,当我们定义一个变量,编译器会按照默认的地址对齐方式,来给该变量分配一个存储空间地址。如果该变量是一个 int 型数据,那么编译器就会按4字节或4字节的整数倍对齐;如果该变量是一个 short 型数据,那么编译器就会按2字节或2字节的整数倍边界对齐;如果是一个 char 类型的变量,那么编译器就会按照1字节对齐。程序示例#inc

2020-07-09 11:15:33 556

原创 【嵌入式】C语言高级编程-attribute和section(06)

00. 目录文章目录00. 目录01. 扩展关键字: attribute02. 属性声明: section03. 属性在Uboot中应用04. 附录01. 扩展关键字: attributeGNU C 增加一个 atttribute 关键字用来声明一个函数、变量或类型的特殊属性。声明这个特殊属性有什么用呢?主要用途就是指导编译器在编译程序时进行特定方面的优化或代码检查。比如,我们可以通过使用属性声明指定某个变量的数据边界对齐方式。__attribute__的使用非常简单,当我们定义一个函数、变量或类型

2020-07-09 10:50:19 427

原创 【嵌入式】C语言高级编程-长度为0的数组(05)
原力计划

00. 目录文章目录00. 目录01. 什么是零长度数组02. 零长度数组应用03. 内核中的零长度数组04. 指针可以代替零长度数组?05. 附录01. 什么是零长度数组零长度数组就是长度为0的数组。ANSI C 标准规定:定义一个数组时,数组的长度必须是一个常数,即数组的长度在编译的时候是确定的。在ANSI C 中定义一个数组的方法如下:类型 数组名[数组元素个数];int array[10];C99 新标准规定:可以定义一个变长数组。int len;scanf("%d", &am

2020-07-06 22:18:14 2415 2

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