【问题标题】:Character constant too long for it's type字符常量对于它的类型来说太长了
【发布时间】:2015-11-22 17:58:07
【问题描述】:

我想尝试制作一个基于文本的游戏,但是对于 item2 - item6 它说,!multi-character character constant。字符常量对于它的类型来说太长了。从 'int' 到 'char' 的隐式转换会将值从 175174007 更改为 103。

#include <stdio.h>

int main()
{
int monster,lion;
char action,item1,item2,item3,item4,item5,item6;

action = 0;
monster = 5;
lion = 3;
item1 = 'lamp';
item2 = 'axe';
item3 = 'nothing';
item4 = 'nothing';
item5 = 'nothing';
item6 = 'nothing';

【问题讨论】:

    标签: c xcode macos osx-yosemite


    【解决方案1】:

    您正在将多字节字符常量分配给 char 类型,这就是您收到警告的原因(具有实现定义的行为)。

    您可以使用指针数组来定义它们:

    char *items[] = {"lamp","axe","nothing","nothing","nothing","nothing"};
    

    并使用,例如:

    printf("%s", items[1]); //would print "axe"
    

    类似地,您可以使用strcmp()(而不是==)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      • 2014-11-01
      相关资源
      最近更新 更多