全部学习汇总: https://github.com/GreyZhang/arduino_uno
在之前的学习工作经验中,C语言对于二进制的支持还是很自然的。我并不知道C++中到底是什么情况,毕竟在Arduino的开发环境中,C++其实才是占有的霸主。
我之前尝试使用过其他平台的二进制表达模式,但是编译的时候没有被识别。今天看了一个文件之后,恍然大悟,为什么例程中的用法是没有问题的。
在Arduino IDE的安装目中,我找到了这一部分文件。当然,这不是原始的文件,而是我做了一个拷贝之后的文件。在第7行光标处,有一个binary.h,打开之后的样子:
对,这里是我之前就已经熟悉了的Arduino中的二进制的表达方式。不过,令我吃惊的是这种实现的模式。原来,二进制的实现直接来了一个穷举的方式,这个确实是有点让我觉得吃惊的。如果真是这样,那么实现一个32bit的方式会是一个什么状态呢?
我直接做一个测试:
结果,这个编译不通过!
注释掉超过8bit的代码之后,编译OK。
代码中没有换行,增加之后的效果:
看起来,这个使用确实是不方便。不过,一个字节的信息标识出来了之后,大不了使用移位等手段进行一个多字节的拼接,实现起来尽管不方便但是还是容易的。