加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

多个声明中的第二个int总是设置为1吗?

发布时间:2020-12-16 03:15:23 所属栏目:百科 来源:网络整理
导读:在 this Code Golf post年,有一个说法是“定义中的第二个变量总是设置为1”,这是一个格式正确的一行: int i=-1,c,o,w,b,e=b=w=o=c; 除了我以外,除了c自动为1之外,所有的设置都为1. 我以为我知道一些C,认为这是非法的(是UB,如果任何东西在随机堆栈内容中). C
在 this Code Golf post年,有一个说法是“定义中的第二个变量总是设置为1”,这是一个格式正确的一行:
int i=-1,c,o,w,b,e=b=w=o=c;

除了我以外,除了c自动为1之外,所有的设置都为1.

我以为我知道一些C,认为这是非法的(是UB,如果任何东西在随机堆栈内容中).

C真的把c设置为1吗?

解决方法

我是CodeGolf的OP.看来我只是一个打字错误,我打算说
int i = -1,e = b = w = o = c = 1;
这样,第二个定义的int始终设置为1,其他定义的int可以设置为1.令人困惑的是,我原来把下一个变量(L = 3)只是l(未定义),而且我将所有其他变量设置为e = b = w = o = c =(L = 3);在我心目中,将L设置为3,对于(1)返回真,然后将其余值设置为1.

稍后的几个测试我意识到这只是将它们全部设置为3,只能使用我用来测试我的代码的特定字符串.所以我删除它们,并将其改为只是L = 3硬编码,其他则为e = b = w = o = c = 1; L = 3.在某些时候,我必须按下cmd z一次太多次,删除“=”和“1”,所以我刚刚留下e = b = w = o = c ;.由于这个一致的未定义的性质(至少在我的IDE上),它总是将它们定义为0,因此该bug没有被注意到.

现在我已经纠正了,由于这个帖子,字节长度是相同的,不需要任何这个棘手的e = b = w = o = c = 1代码,我只想到字节长度是不同的,因为当我将我的功能复制粘贴到一个字节计数器,它显示它是2个字节较小(我不知道我只是一个打字错误,缺少2个字节).

我的IDE总是将这些变量定义为0.我的代码被设计为与所有被定义为1的变量一起工作,它的工作原理w / 0是巧合的.也只是因为它发生在我的IDE并不意味着它会在别人,虽然我已经测试了几个IDE现在在线,并运行许多循环,它似乎总是返回0.无论如何,我还更新我的原始代码将它们设置为1,因为它应该是(为我的程序添加2个字节).

感谢大家的投入

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读