翻译自 IAR Technical Note 28545 《IAR DLIB Library heap usage statistics》 updated 2017/9/22
介绍
关于堆的描述在《IAR C/C++ Development Guide for ARM》的 Dynamic memory on the heap 一章中。本技术手册仅描述在应用程序中如何统计堆的使用量。通过跟踪 malloc 或类似函数使用的内存总量来实现。
翻译自 IAR Technical Note 28545 《IAR DLIB Library heap usage statistics》 updated 2017/9/22
关于堆的描述在《IAR C/C++ Development Guide for ARM》的 Dynamic memory on the heap 一章中。本技术手册仅描述在应用程序中如何统计堆的使用量。通过跟踪 malloc 或类似函数使用的内存总量来实现。
我玩过的游戏并不少,坚持玩下来的只有一个养成类游戏《梦想小镇》,英文名township。虽说玩了也有好几年了,但基本上是玩一段时间就卸载,过很久又重新下载开始玩。好在这个游戏可以使用脸书账号备份,因此进度没丢。手机屏幕小,玩起来视野比较小,在电脑上鼠标玩起来也会比较爽。
模拟器使用的是MuMu模拟器 。也没用过别的模拟器,因此没有对比,不过感觉这个模拟器还是挺不错的,可以安装play store。
下面是一些截图:
红外通信的协议有很多种。这个实验使用的是NEC协议。这个协议采用PWM的方法进行调制,利用脉冲宽度来表示 0 和 1 。
NEC 遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个 9ms 的低电平和一个 4.5ms 的高电平组成,地址码、地址反码、控制码、控制反码均是 8 位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性。因此,每帧的数据为 32 位,包括地址码,地址反码,控制码,控制反码。反码可用于解码时进行校验比对。
NEC码的位定义:一个脉冲对应 560us 的连续载波,一个逻辑 1 传输需要 2.25ms(560us 脉冲+1680us 低电平),一个逻辑 0 的传输需要 1.125ms(560us 脉冲+560us 低电平)。而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,在接收头端收到的信号为:逻辑 1 应该是 560us 低+1680us 高,逻辑 0 应该是 560us 低+560us 高。
leetcode 上有这么一道题,power of three.
题目如下:
Given an integer, write a function to determine if it is a power of three.
要求:
Could you do it without using any loop / recursion?
就是说给出一个数,判断该数是否是 3 的 n 次方。且最好不要使用循环或者迭代来实现。
原文链接:博客园 C语言变量声明加冒号的用法
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有 0 和 1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位 域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:
struct 位域结构名
{ 位域列表 };
其中位域列表的形式为: 类型说明符 位域名:位域长度