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