Multicharacter literals have int
type and have an implementation-defined value. This means they might be interpreted differently by
different compilers. For example, they might lead to different behavior when compiled with GCC than when compiled with MSVC.
Even if they work as you expect with a specific compiler, they will make your code less portable. They are also misleading as they look like
strings, hence make your code less readable.
Noncompliant code example
void f(int i) {
// ...
if (i == 'abcd') { // Noncompliant
// ...
}
}