相关疑难解决方法(0)

为什么printf需要强制转换?

要打印多种类型off_t,建议使用以下代码:

off_t a;
printf("%llu\n", (unsigned long long)a);
Run Code Online (Sandbox Code Playgroud)
  • 为什么格式字符串是不是就够了吗?
  • 如果没有铸造会有什么问题?

c printf

13
推荐指数
2
解决办法
3675
查看次数

在可变参数列表中有哪些类型的默认促销?

例如,我printf在C++中使用函数用于8位CPU(AVR).以下代码是否安全:

uint8_t a = 5;
printf("%d", a);
Run Code Online (Sandbox Code Playgroud)

这里%d期望int(在我的情况下为16位,在任何情况下至少为16位),但我传递8位整数.

C/C++标准是否保证任何类型的等级小于int升级int

同样的问题float a%f期望double,以及其他类似的类型.

c c++ variadic-functions

10
推荐指数
1
解决办法
1935
查看次数

为什么printf隐式浮点到int转换不起作用?

请帮助我理解以下C输出:

#include<stdio.h>
int main() {
    float x = 4.0;
    printf("%f\n",x);
    printf("%d\n",x);
    int y=x;
    printf("%d\n",y);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出gcc编译器

4.000000
0
4
Run Code Online (Sandbox Code Playgroud)

据我所知,当我们将float赋值给一个int变量时,变量的小数部分终止然后分配给int.

为什么在这种情况下没有发生?

c printf

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

c ×3

printf ×2

c++ ×1

variadic-functions ×1