已添加代码:
bool CHARACTER::SpamAllowBuf(const char *Message)
{
if (!strcmp(Message, "(??´c)") || !strcmp(Message, "(?·)") || !strcmp(Message, "(±a?Y)") || !strcmp(Message, "(AA??)") || !strcmp(Message, "(?c¶?)") || !strcmp(Message, "(???e)") || !strcmp(Message, "(??C?)") || !strcmp(Message, "(????)") || !strcmp(Message, "(AE??)"))
{
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
警告给出:
char.cpp:7254:121: warning: trigraph ??) ignored, use -trigraphs to enable
char.cpp:7254:245: warning: trigraph ??) ignored, use -trigraphs to enable
char.cpp:7254:275: warning: trigraph ??) ignored, use -trigraphs to enable
Run Code Online (Sandbox Code Playgroud)
我怎么能跳过这个警告?
三字符序列是以字母开头的任何字符序列"??"; 下一个字符决定了序列的含义.Trigraph序列(或用于)表示某些键盘上未提供的字符.所以,例如,"??="意味着#.
Trigraph序列不再广泛使用; 我没有检查过,但它们很可能已在C++中被弃用或完全删除.(感谢@johnathan指出它们已在C++中删除17)
在任何情况下,如果你不能关闭该警告,可以更改字符序列,使得它看起来相同的编译器,但不是一个三字符.为此,请将其中一个?字符更改为\?.所以"??="会成为"?\?="; 这不是一个三字母,因为它不是由"??"另一个字符后跟的字符组成,但是一旦编译器处理了它,它就会出现两个问号后跟一个'='符号.
重新排列引用字符串的另一种方法是将它们分开.所以"??="会成为"??" "="或"?" "?="; 编译器串接的相邻字符串文字,但同样,由于串联检查三合发生后,他们没有三合序列.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |