守幽 发表于 2021-11-1 17:08:52

S1E6 关于%d的问题

教学视频中都死%d,实际自己操作时候都让我替换%lu,这是什么情况

人造人 发表于 2021-11-1 17:21:30

教学视频中是错误的,换成 %lu 就对了

人造人 发表于 2021-11-1 17:22:12

提示很明显,sizeof 返回的是 unsigned long 类型,应该用 %lu

lei1996 发表于 2021-11-1 17:24:33

其实就是sizeof()函数定义的时候返回类型是unsigned long   所以编译器希望你前面用%lu和它匹配   实际用%d应该也可以只不过应该有类型转换这里代码下面黄线应该能运行吧

jackz007 发表于 2021-11-1 17:30:43

本帖最后由 jackz007 于 2021-11-1 17:32 编辑

      意思是 sizeof() 表达式的数据类型是 unsigned long ,对应的格式描述符是 "%lu",建议用 "%lu" 替换 "%d",当然,这只是语言开发环境给出的提示,在本例中,你完全可以选择忽视,并没有什么原则性的问题,也不会导致错误发生。视频中的说法往往具有更加广泛的适用性。

守幽 发表于 2021-11-1 17:38:12

lei1996 发表于 2021-11-1 17:24
其实就是sizeof()函数定义的时候返回类型是unsigned long   所以编译器希望你前面用%lu和它匹配   实际用%d ...

可以的

守幽 发表于 2021-11-1 17:43:33

人造人 发表于 2021-11-1 17:21
教学视频中是错误的,换成 %lu 就对了

谢谢

守幽 发表于 2021-11-1 17:44:05

人造人 发表于 2021-11-1 17:22
提示很明显,sizeof 返回的是 unsigned long 类型,应该用 %lu

谢谢
页: [1]
查看完整版本: S1E6 关于%d的问题