Search code examples
cstringescapingstring-literals

Does C support raw string literals?


C++11 added support for raw string literals, such as:

R"foo(A " weird \"
 string)foo"

Does C have such a thing? If so, in what version of the standard? C11? If not, does anyone know if it is being planed and if any compilers support it?


Solution

  • Does C have such a thing? If so, in what version of the standard? C11?

    C (C90, C99, C11) does not support this feature or any other similar feature.

    If not, does anyone know if it is being planed

    I have no idea, but usually there is a strong resistance of C committee to include new features in C.

    and if any compilers support it?

    I just tested it and it is apparently supported with recent gcc versions as a GNU extension (compile with -std=gnu99 or -std=gnu11).

    For example:

    printf(R"(hello\nworld\n)");
    

    compiles and gives the expected behavior.