为什么在C中使用floor()时类型定义了两次?

时间:2015-01-05 00:08:33

标签: objective-c c

我试图学习C / Objective-C。在本书中,我通过(Objective-C Programming:The Big nerd Ranch Guide),他们在这个变量上设置了两次类型。为什么?当我删除操作员右侧的(unsigned int)时,它仍然可以正常工作。

unsigned int feet = (unsigned int)floor(rawFeet);

1 个答案:

答案 0 :(得分:2)

说错了两次类型是错误的。定义类型意味着创建新类型。这里的类型被提到两次。在左侧,它用于定义类型为feet的名为unsigned int的变量。在右侧,它用于将返回floor的{​​{1}}的返回值转换为double - 用于赋值给变量。

一方面注意:如果你知道rawFeet为正,我会假设使用unsigned然后调用floor是完全没必要的。相反,您可以将rawFeet转换为unsigned int。

e.g。

unsigned int

此外,评论中提到演员阵容是不必要的。这可能是真的,但很多编译器会正确地给你一个关于这样做的警告。例如,在Visual C ++中:

double rawFeet = 24.6;
unsigned int feet = (unsigned int)rawFeet;
// feet now equals 24