类型转换
一些问题
表达式计算并传参时的类型转换问题
例子如下:
#include <stdio.h>
#include <stdint.h>
int main()
{
uint8_t a = 254;
uint8_t b = 2;
uint32_t c = a + b;
printf("c=%d\n", (int)c);
return 0;
}
输出的结果为:
$ ./a.out
c=256
隐式类型转换
https://en.cppreference.com/w/cpp/language/implicit_conversion
在某个接受T2类型的场景中,如果使用了一个或多个T1的类型,就会执行隐式转换,例如:
- 函数传参(实参T1,形参T2)
- 仿函数传参
- new
- 函数返回值
- switch语句(T2为内置类型)
- if语句(T2是bool)