警告:多字符字符常量[-Wmultichar] |

时间:2014-09-28 15:44:54

标签: c char

/* Beginning 2.0 */
#include<stdio.h>
main()
{
    printf(" %d signifies the %c of %f",9,'rise',17.0);
    return 0;
}

Hello people

编译时,编译器发出以下警告:

warning: multi-character character constant [-Wmultichar]|

输出仅打印e而不是rise

C中是否不允许使用多个字符?

如何打印整个单词(rise)?

请帮帮我。

2 个答案:

答案 0 :(得分:6)

尝试:printf(" %d signifies the %s of %f",9,"rise",17.0);

C区分字符(一个字符)和字符字符串(可包含任意数量的字符)。您使用单引号('')表示字符文字,但使用双引号表示字符 string 文字。

同样,您指定%c转换单个字符,但指定%s转换字符串。

答案 1 :(得分:3)

使用%s""作为字符串:

printf(" %d signifies the %s of %f",9,"rise",17.0);
                          ^^          ^    ^

对于'rise',这是有效的 ISO 9899:1999 C 。它使用-Wall在gcc下进行编译而不会发出警告,并使用“multi-character character constant”进行-pedantic警告。

根据标准(§6.4.4.4.10),

  • The value of an integer character constant containing more than one character (e.g., 'ab'), [...] is implementation-defined.