相关疑难解决方法(0)

char是默认提升的吗?

这可能是一个愚蠢的问题,但有人可以请为C++ 11和C11提供标准参考:

char默认升为int

这里有一点背景:C和C++都有默认参数提升的概念(C++ 11:5.2.2/7; C11:6.5.2.2/6).这需要在以下调用中提升参数:

void f(int, ...);

float a = 1; short int b = 2; char c = 'x';

f(0, a, b, c);
Run Code Online (Sandbox Code Playgroud)

对于函数调用,a将转换为doubleb转换为int.但是会发生什么c?我一直都认为这char也得到提升int,但我无法在标准中找到相关的陈述.

c c++ integer-promotion language-lawyer

15
推荐指数
2
解决办法
1194
查看次数

标签 统计

c ×1

c++ ×1

integer-promotion ×1

language-lawyer ×1