You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

打印C语言枚举(enum)类型值时出现类型转换及常量错误求助

枚举打印错误的解决方法

错误原因分析

  • printf格式字符串使用错误:你用单引号'%c\n'包裹格式字符串,C语言中printf的第一个参数必须是双引号包裹的字符串常量,单引号包裹的'%c\n'属于多字符常量,类型为int,传递给需要const char*类型的参数时,就会触发“整数到指针转换不兼容”的报错,同时编译器会提示“无法打印多字符常量”。
  • 格式符匹配错误:如果要打印枚举对应的整数值,%c是用来输出字符的格式符,和枚举的int类型不匹配,应该使用%d格式符。

修正后的代码

#include <stdio.h>
int main()
{
   enum Company { GOOGLE, FACEBOOK, XEROX, YAHOO, EBAY, MICROSOFT};
   enum Company a = XEROX;
   enum Company b = GOOGLE;
   enum Company c = EBAY;
   printf("%d\n",a);
   printf("%d\n",b);
   printf("%d\n",c);
   return 0;
}

运行结果

修正后运行会输出枚举对应的整数:

2
0
4

(枚举成员默认从0开始依次递增赋值,GOOGLE是0,XEROX是2,EBAY是4)

内容的提问来源于stack exchange,提问作者Jeevanpranav K S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:25:01