CSDN博客数据导出
CSDN2HEXO 源码地址
CSDN2HEXO
CSDN2HEXO 是一款基于CSDN开放平台 的 csdn blog 内容下载器, 可以下载博客中的文章内容和图片,文章保存为 markdown 格式,图片可下载无水印图片,并根据文章标题生成文件夹存储相关数据。
 2018-04-28 展开全文C语言中,隐藏结构体的细节
本文转载自 博客园
我们都知道,在C语言中,结构体中的字段都是可以访问的。或者说,在C++ 中,类和结构体的主要区别就是类中成员变量默认为private,而结构体中默认为public。结构体的这一个特性,导致结构体中封装的数据,实际上并没有封装,外界都可以访问结构体中的字段。
 2018-04-18 展开全文C语言 符号的不同意义
C语言的许多符号在不同的上下文环境里有不同的意义,相当于被“重载”了。如下展示了一些符号的不同意义。
static
- 在函数内部,表示该变量的值在各个调用间一直保持延续性。类似与全局变量,区别在于作用域不同。
- 在函数外部,表示该函数或者变量只对本文件可见。
IAR 和 keil 使用外部 SDRAM 的区别
当芯片内部的 SRAM 不够用时,就需要在外部扩展 SDRAM,然后在写程序时将一些比较大的 buffer 定义在外部内存中。在进行正确的配置之后,对外部 SDRAM 的使用,和芯片内部的 SRAM 是一样的,可以直接对 SDRAM 的地址进行读写访问。
 2018-03-26 展开全文C语言 ringBuffer
一、 ringBuffer 介绍
ringBuffer 称作环形缓冲,也有叫 circleBuffer 的。就是取内存中一块连续的区域用作环形缓冲区的数据存储区。这块连续的存储会被反复使用,向 ringBuffer 写入数据总是从写指针的位置开始,如写到实际存储区的末尾还没有写完,则将剩余的数据从存储区的头开始写;从该 ringBuffer 读出数据也是从读指针的位置开始,如读到实际存储区的末尾还没有读完,则从存储区的头开始读剩下的数据。
 2018-03-22 展开全文C语言 malloc 内存泄漏
错误代码如下:
int Init_layer2_Decoder(void)
{
Stream = (struct mad_stream*)malloc(sizeof(struct mad_stream));
Frame = (struct mad_frame*)malloc(sizeof(struct mad_frame));
Synth = (struct mad_synth*)malloc(sizeof(struct mad_synth));
if(Stream==NULL || Frame==NULL || Synth==NULL)
{
printf("init mp2Dec fail!\n");
return -1;
}
mad_stream_init(Stream);
mad_frame_init(Frame);
mad_synth_init(Synth);
return 0;
}
 2018-03-18
展开全文
STM32 硬件CRC和软件CRC速度比较
一、测试条件
硬件: STM32L432KC
主频: 80MHz
编译器: IAR 8.20.1
编译选项: High Speed no size constraints
CRC 生成多项式: 0x782f
二、测试方法
软件提前生成CRC表,用于查询。分别使用软件CRC算法和硬件CRC外设对一个缓存进行计算,目的是从该缓存中找到同步头。同步头共11字节,前两个字节为后九个字节的CRC校验值。通过迭代算法依次对11字节进行计算和比较,当找到同步头后返回同步头偏移量。通过时间比较两者之间的速度。
三、测试结果
迭代24464次后,从缓存中找到同步头。
不开启编译时间优化时,软件算法用时238ms,硬件CRC用时220ms。
下载 tumblr 标记为喜欢的内容
源代码发布在github : get_tumblr_likes
一、介绍
本项目使用 python 编写,分析 tumblr 账户中喜欢的内容,给出资源链接,并下载。
其中 test.json
是一份 tumblr 返回的喜欢数据的 json 示例,提取里面图片和视频的资源地址后下载,下载的内容如下图。