【发布时间】:2020-02-06 14:23:35
【问题描述】:
我在 C 代码中看到了以下内容,这对我来说似乎很奇怪:
myType GetStuff(size_t *iSize) {
*iSize = (size_t)0;
size_t h = 0;
*iSize += h;
}
没有演员表也能正常工作:*iSize = 0;。
是否需要 (size_t) 演员表还是多余的?
【问题讨论】:
-
这很可能是对编译器警告的修复,如果不是 - 它冷被删除
-
为什么
*iSize = 0会给出警告而不是h = 0,因为*iSize和h属于同一类型...(换句话说:如果*iSize = 0需要演员表,h = 0也应该有演员表)。 -
你不应该那样改变问题,答案和cmets不会反映问题。
-
@anastaciu:我看过问题历史,我的评论是成立的。 明确陈述了预期的问题。答案应该集中在被问到的问题上。问题中有关代码其他方面的陈述应归入次要地位,例如补充说明。而且,正如我所写的,人们显示声明只是为了显示对象的类型而不是表示实际代码的情况并不少见。好与坏,这种情况并不少见,所以有经验的参与者应该认清它,而不是因为它而跳上海报。
-
虽然我决定删掉一部分不再有意义的答案,但我必须认识到问题的重点没有改变。
标签: c casting coding-style