类型转换有什么用?为什么需要它?它只是从一种类型转换为另一种类型吗?
答案 0 :(得分:2)
使用类型转换可以是您的程序所需的任何方式。例如,在Doryen库中,暴露给用户的类型(在头文件中)都是void*
。在.c文件中,它们被转换为必要的内容,例如RNG工具包中的mersenne_t。使用是显而易见的:mersenne_t struct包含永远不会与库用户混淆或甚至可见的字段。只有一个TCOD_random_t类型暴露给库用户会产生更清晰的API。
类型转换的另一个例子是,例如,将浮动向下舍入:
float f = 1.5f;
int i = (int)f;
printf("%d",i);
以上将输出1
。
您可以使用它来创建一个整洁的浮动舍入功能:
float round(float f) {
f += (f>0.0f?0.5f:(-0.5f));
return (float)((int)f);
}
答案 1 :(得分:1)
类型转换是一种编译器构造,它向解析器指示即使预期类型和实际类型不同,代码生成器仍应能够处理它。