- 《C和指针》练习题10.11 题目 当你拨打长途电话时,电话公司所保存的信息包括你拨打电话的日期和时间。它还包括三个电话号码:你使用的那个电话、你呼叫的那个电话及你付账的那个电话。 这些电话号码的每一个都由三个部分组成:区号、交换台和号码。 请为这些记账信息编写一个结构声明。 代码 //dem... 《C和指针》练习题10.11 题目 当你拨打长途电话时,电话公司所保存的信息包括你拨打电话的日期和时间。它还包括三个电话号码:你使用的那个电话、你呼叫的那个电话及你付账的那个电话。 这些电话号码的每一个都由三个部分组成:区号、交换台和号码。 请为这些记账信息编写一个结构声明。 代码 //dem...
- 《C和指针》习题8.8 问题 3.单位矩阵就是一个正方形矩阵,它除了主对角线元素值为1以外,其余元素的值均为0,例如: *1 0 0 *0 1 0 *0 0 1 *就是一个3×3单位矩阵,编写一个名叫identity_matrix的函数,它接受一个10×10整型矩阵为参... 《C和指针》习题8.8 问题 3.单位矩阵就是一个正方形矩阵,它除了主对角线元素值为1以外,其余元素的值均为0,例如: *1 0 0 *0 1 0 *0 0 1 *就是一个3×3单位矩阵,编写一个名叫identity_matrix的函数,它接受一个10×10整型矩阵为参...
- 目录 一,作用域 二,翻译单元 三,链接属性 四,可见性分类 五,存储期(生命周期) 六,变量存储类别 1,自动变量 2,寄存器变量 3,静态局部变量 4,非静态全局变量 5,静态全局变量 七,函数存储类别 八,存储区 一,作用域 作用域指的是,可以通过标识符的名称来访问它的一个范围。 有两种常见的作用... 目录 一,作用域 二,翻译单元 三,链接属性 四,可见性分类 五,存储期(生命周期) 六,变量存储类别 1,自动变量 2,寄存器变量 3,静态局部变量 4,非静态全局变量 5,静态全局变量 七,函数存储类别 八,存储区 一,作用域 作用域指的是,可以通过标识符的名称来访问它的一个范围。 有两种常见的作用...
- 《C和指针》练习题11.11 问题 编写一个函数,从标准输入读取一列整数,把这些值存储于一个动态分配的数组中并返回这个数组。函数通过观察EOF判断输入列表是否结束。数组的第一个数是数组包含的值的个数,他的后面就是这些整数值 代码 #include <stdio.h>#include &... 《C和指针》练习题11.11 问题 编写一个函数,从标准输入读取一列整数,把这些值存储于一个动态分配的数组中并返回这个数组。函数通过观察EOF判断输入列表是否结束。数组的第一个数是数组包含的值的个数,他的后面就是这些整数值 代码 #include <stdio.h>#include &...
- 为了认证C语言专业级上机编程,我特地学习了C语言的哈希表。 哈希表在头文件"uthash.h"中已经有了,只需要简单学习一下用法即可。 1,哈希结构体 #include "uthash.h"typedef struct { int key; int value; UT_hash_handle hh... 为了认证C语言专业级上机编程,我特地学习了C语言的哈希表。 哈希表在头文件"uthash.h"中已经有了,只需要简单学习一下用法即可。 1,哈希结构体 #include "uthash.h"typedef struct { int key; int value; UT_hash_handle hh...
- 在各种设备间的传输协议或者通信协议中,一般对数据的字段类型都各不相同,比如BCD码,BIN码,ASCII码等。下面接收几种字段类型定义的实例 1.BCD码 定义一个16位机器编码 2018041912345678 uint8_t Dev[8] ; 一般两种存储方式: 大端模式:高位存在低位地址... 在各种设备间的传输协议或者通信协议中,一般对数据的字段类型都各不相同,比如BCD码,BIN码,ASCII码等。下面接收几种字段类型定义的实例 1.BCD码 定义一个16位机器编码 2018041912345678 uint8_t Dev[8] ; 一般两种存储方式: 大端模式:高位存在低位地址...
- /* 基本数据结构的定义以及函数的声明 */typedef int ElemType; typedef struct Node{ ElemType elem; struct Node* next;} Node, * NodePtr, **ForwardList; NodePtr createNode(ElemType x);... /* 基本数据结构的定义以及函数的声明 */typedef int ElemType; typedef struct Node{ ElemType elem; struct Node* next;} Node, * NodePtr, **ForwardList; NodePtr createNode(ElemType x);...
- #include <stdio.h>#include <stdlib.h>int main(){ int a[]={1,2,3,4,5};//这个数组里存入的是具体的数据 int *num[]={&a[0],&a[1],&a[2],&a[3],&a[4]};//... #include <stdio.h>#include <stdlib.h>int main(){ int a[]={1,2,3,4,5};//这个数组里存入的是具体的数据 int *num[]={&a[0],&a[1],&a[2],&a[3],&a[4]};//...
- #include <stdio.h>#include <string.h>int main(){ char str[] = "http://c.biancheng.net"; int len = strlen(str), i; //直接输出字符串 printf("%s\n", str); ... #include <stdio.h>#include <string.h>int main(){ char str[] = "http://c.biancheng.net"; int len = strlen(str), i; //直接输出字符串 printf("%s\n", str); ...
- 1.基础配置 (1)功率:在PCONP寄存器中置位PCSSP0/1; (2)时钟:在PCLK_SSP1寄存器中选择PLCK_SEL0;在PCLK_SSP0寄存器中选择PCLK_SEL1.主机模式下必须对时钟进行分频。 (3)管脚:通过PINSEL寄存器选择SSP管脚,并通过PINMODE寄存器选择管脚模式 (4)中断:中断是通过SnSP... 1.基础配置 (1)功率:在PCONP寄存器中置位PCSSP0/1; (2)时钟:在PCLK_SSP1寄存器中选择PLCK_SEL0;在PCLK_SSP0寄存器中选择PCLK_SEL1.主机模式下必须对时钟进行分频。 (3)管脚:通过PINSEL寄存器选择SSP管脚,并通过PINMODE寄存器选择管脚模式 (4)中断:中断是通过SnSP...
- 静态链接 1.建立静态链接库 File→New→Project→Static library 示例: 建立静态链接库工程:StaticLibrary, static.h #ifndef STATIC_H_INCLUDED #define STATIC_H_INCLUDED #ifdef __cplusplus extern "C... 静态链接 1.建立静态链接库 File→New→Project→Static library 示例: 建立静态链接库工程:StaticLibrary, static.h #ifndef STATIC_H_INCLUDED #define STATIC_H_INCLUDED #ifdef __cplusplus extern "C...
- 1. crc8校验接口 static uint8_t crc8( uint8_t * p_buffer, uint16_t buf_size ){ uint8_t crc = 0; uint8_t i=0; if(buf_size <= 0) { return crc; } ... 1. crc8校验接口 static uint8_t crc8( uint8_t * p_buffer, uint16_t buf_size ){ uint8_t crc = 0; uint8_t i=0; if(buf_size <= 0) { return crc; } ...
- 可重入函数和不可重入函数的概念 在函数中如果我们使用静态变量了,导致产生中断调用别的函数的 过程中可能还会调用这个函数,于是原来的 静态变量被在这里改变了,然后返回主体函数,用着的那个静态变量就被改变了,导致错误。这类函数我们称为不可重入函数。 如果是在函数体内 动态申请内存的话,即便 新的线程调用这个函数也没事,因为新的线... 可重入函数和不可重入函数的概念 在函数中如果我们使用静态变量了,导致产生中断调用别的函数的 过程中可能还会调用这个函数,于是原来的 静态变量被在这里改变了,然后返回主体函数,用着的那个静态变量就被改变了,导致错误。这类函数我们称为不可重入函数。 如果是在函数体内 动态申请内存的话,即便 新的线程调用这个函数也没事,因为新的线...
- typedef void (*T) (void * );定义了一个指向函数的指针T, 其 返回值 void 类型,参数也是后面的(void *) 接下来我们就可以直接使用 T 来定义这种 指针变量 ,比如:T fn1; //等价于void fn1 (void *); 使用:void func(void *);... typedef void (*T) (void * );定义了一个指向函数的指针T, 其 返回值 void 类型,参数也是后面的(void *) 接下来我们就可以直接使用 T 来定义这种 指针变量 ,比如:T fn1; //等价于void fn1 (void *); 使用:void func(void *);...
- 根据之前的顺序栈类比,栈只是栈顶来做插入和删除操作,栈顶放在链表的头部还是尾部呢? 类比单链表的头指针和栈顶指针,为什么不合二为一呢? 所以想出了把栈顶放在单链表的头部 对于链栈来说,基本不存在栈... 根据之前的顺序栈类比,栈只是栈顶来做插入和删除操作,栈顶放在链表的头部还是尾部呢? 类比单链表的头指针和栈顶指针,为什么不合二为一呢? 所以想出了把栈顶放在单链表的头部 对于链栈来说,基本不存在栈...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
即将直播
热门标签