全部的学习记录汇总:https://github.com/GreyZhang/Arduino_Cpp
这个标题来自于《C专家编程》,我印象中那本书中有这么一个章节用来介绍数据类型的转换。这里,通过几个例子来看看C++中的注意点。我参考的教程是《像计算机学家一样思考C++版本》。在语言本身的细节上不一定会很细致,这是第一本,后面还可以继续“刷题”。
写测试代码如下:
运行结果:
先额外说一点昨天忘记记录的:C++的变量定义位置相比C来说更加灵活,可能不同的标准中间有不同的要求,但是我接触的C++似乎都是灵活的。这样写测试代码非常方便,但是或许达不到那种程序和数据分离的效果。
- 第1个浮点数字的转换,可以看得出定义初始化的时候编译器的行为其实是先把后面的数值按照其本身的语义进行计算,之后做一个数据类型转换和赋值。
- 第2个浮点例子在教材中是没有的,我自己增加的,主要是为了对比一下看看是否也有《C专家编程》中提到的安静的转换。看起来还是有的。
- 结合第一条分析,第3个浮点其实容易理解。
- 第1个整型例子以及第3个整型的例子可以合并在一起进行理解,其实这个都是看一个语言行为:转换的时候向下取整。
- 第2个整型的例子其实是一个规范的做法,也是显性强制数据类型转换的用法。不过,这个语法方式有点像Python而不像C语言,还是比较有意思的。
上面这部分,虽然是语言本身的小细节。但是,做嵌入式的编码等工作后面肯定会有大量的接触。因此,还是做了一个小结整理。