在c中进行类型转换

时间:2010-11-29 09:03:07

标签: c

类型转换有什么用?为什么需要它?它只是从一种类型转换为另一种类型吗?

2 个答案:

答案 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)

类型转换是一种编译器构造,它向解析器指示即使预期类型和实际类型不同,代码生成器仍应能够处理它。