printf 内部函数出现的问题
当碰到"%c", carg = va_arg(vap, int);我用的 carg = va_arg(vap, char);
程序警告:warning: second argument to 'va_arg' is of promotable type 'char';
this va_arg has undefined behavior because arguments will be promoted to
'int'。
为什么这里的char 要升级用int??
有时候有一些 char的 我记得要用int的,能不能举几个例子??
// 如果不是格式化占位符,直接打印字符串
if (format != '%')
{
putchar(format);
i++;
count++;
}
// 如果是格式化占位符...
else
{
switch (format)
{
case 'c':
{
carg = va_arg(vap, int);// 这里不应该是va_arg(vap,char);
putchar(carg);
count++;
break;
} 本帖最后由 My_A 于 2019-4-3 07:57 编辑
char 转换成int用:
char c = 'c'
c++ //1
c = 3 + c//2
int i = c +4//3
页:
[1]