广州做网站(信科网络)百度免费下载安装
Cpp输出多字符常量警告
Cpp
中用单引号(single quotes)
表示单个字符(single character)
,例如'a'
,'$'
,用双引号(double quotes)
表示字符串文本(text)
,例如"Hello World! "
当在一个单引号里面存在多个字符时,Cpp
编译器就会发出警告([-Wmultichar])multi-character
如下所示:
#include <iostream>using namespace std;int main()
{/* multi-character */cout << 'aa' << endl;return 0;
}
警告信息为:
[{"resource": "/e:/CppWorkSpace/VSCLearnCpp/learncpp/1_5.cpp","owner": "_generated_diagnostic_collection_name_#0","code": "-Wmultichar","severity": 4,"message": "Multi-character character constant","source": "clang","startLineNumber": 19,"startColumn": 13,"endLineNumber": 19,"endColumn": 17
}]
其中最主要的为 "message": "Multi-character character constant"
运行该程序,便会得到以下的结果

1_5.cpp:19:13: warning: multi-character character constant [-Wmultichar]19 | cout << 'aa' << endl;| ^~~~
24929
编译器发出警告信息,同时输出24929

原来'a'
字符的ASCII码
为0x61
,当多个字符放在同一个单引号中,就会自动将其转换为ASCII码
'aa'
将被转换为0x6161
转化为十进制数就是24949
,同时这个十进制的范围最大为long int
;
例如'aaa
将被转换为0x616161
转换为十进制数即为6381921
.
在实际编程中,我们要避免这种问题的发生
参考链接
ASCII码表