这是因为在printf函数中,%d是用来格式化整数的,而你传入的参数类型是double,所以会提示错误。即使你的代码中有判断传入参数类型的if语句,编译器也无法在编译期间确定if语句中的条件是否为true,因此仍然会对printf函数中的参数类型作出检查并提示错误。

为了解决这个问题,你可以使用%d的替代格式,如%f或%g,这些格式可以用来格式化浮点数。或者你可以将传入的参数强制转换为int类型,以便使用%d来格式化。但是要注意,如果传入的参数不是整数类型,强制转换可能会导致精度损失或者其他错误,因此需要谨慎使用。

dlang语言最新dmd2103版本如下代码:import corestdcstdio;void testTT theNum ifisT==int printf当前值是int类型值为dtheNum; else printf不是int; externC void main test108; 为什么

原文地址: https://www.cveoy.top/t/topic/fbkw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录