用多种编译器的兄弟们进来帮忙.

雪鹰翔天 2008-11-13 09:28:25
话说老板从韩国带来一个东西,号称很好的,其中有这样一小段代码.....
我想知道这段代码在哪个编译器、哪个版本下能编译通过呢?


WORD GetNumberOfBits(DWORD dwMask)
{
for(WORD wBits = 0; dwMask; wBits++)
{
dwMask = dwMask &(dwMask - 1);
}
return wBits;
}

...全文
89 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2008-11-14
  • 打赏
  • 举报
回复
貌似是VS的WORD和DWORD,不过VC6应该是不太支持for中定义变量,
而且不管什么编译器应该都不支持返回不是该scope中的local变量。
shuaiwang_01 2008-11-13
  • 打赏
  • 举报
回复
还真生疏。
lann64 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hai040 的回复:]
vc6,vc7能吧
[/Quote]
nod,vc6能过是有可能的。vc6在局部变量声明上有个bug,刚好能让这里通过。
hai040 2008-11-13
  • 打赏
  • 举报
回复
vc6,vc7能吧
lann64 2008-11-13
  • 打赏
  • 举报
回复
WORD GetNumberOfBits(DWORD dwMask)
{
for(WORD wBits = 0; dwMask; wBits++)
{
dwMask = dwMask &(dwMask - 1);
}
return wBits;
}

这玩意,估计哪个编译器都过不了。除非外部还有个wBits定义。
雪鹰翔天 2008-11-13
  • 打赏
  • 举报
回复
真晕.....

wBits在for循环里面定义,在函数最后能return?

语句块变量的生存周期是多长?

vc8.0是过不去的...

PS..WORD DWORD在Windows头文件有...
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zmlovelx 的回复:]
计算位中1的数目
WORD DWORD你查下它的typedef 有的话编译器就能过的. 没有的话可以自己弄
经测试vc6.0 gcc都过不了.
[/Quote]

一般vc6中都有word和dword的定义吧
xhs_lh04 2008-11-13
  • 打赏
  • 举报
回复
除了WORD ,DWORD 类型定义外,其它的语句最普通不过了
看编译器有没WORD ,DWORD的定义,没有自己搞一个也行
帅得不敢出门 2008-11-13
  • 打赏
  • 举报
回复
计算位中1的数目
WORD DWORD你查下它的typedef 有的话编译器就能过的. 没有的话可以自己弄
经测试vc6.0 gcc都过不了.
雪鹰翔天 2008-11-13
  • 打赏
  • 举报
回复
嗯....
我就是怀疑wBits有问题....
但相关技术人员说不需要做任何修改....
反正我的VS2005是不行的....

PS:不要怀疑别人的智商哈..
snoweagleofself 2008-11-13
  • 打赏
  • 举报
回复
wBits的位置放的对吗?
好像是在For语句块的变量哎....
星羽 2008-11-13
  • 打赏
  • 举报
回复
。。。。。。估计山寨编译器都可以编译过。。。。
taodm 2008-11-13
  • 打赏
  • 举报
回复
哪个编译器都能编译过,即使是20年前的tc2.0
只是,你不会连WORD、DWORD惯用法都还没听说过吧?
就是unsigned short与unsigned long。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧