The only data type, which allows mixed SBCS and DBCS string, in the source code of C language is the literal data type. All the C compilers can handle the literal with mixed SBCS and DBCS string. But in SBCS environment, if the last character of the literal, inside two double quotation mark("), is a DBCS character whose second byte is 0x5C, then the compiler can not recognize the literal and compiling error occur. To avoid this problem, most compilers are designed CP-dependent or provide a compile option.
Some C compiler products provide some DBCS libraries in their NLVs. However, in order to keep the portability of the source code, those DBCS libraries are not recommended.