C ++ 11增加了对原始字符串文字的支持,例如:
R"foo(A " weird \"
string)foo"
C有这样的事吗?如果是这样,在什么版本的标准? C11?如果没有,是否有人知道它是否正在计划,是否有任何编译器支持它?
答案 0 :(得分:9)
C有这样的事吗?如果是这样,在什么版本的标准? C11
C(C90,C99,C11)不支持此功能或任何其他类似功能。
如果没有,有人知道它是否正在计划中
我不知道,但通常C委员会强烈反对在C中加入新功能。
如果有任何编译器支持它?
我刚测试了它,显然支持最近的gcc
版本作为GNU扩展(使用-std=gnu99
或-std=gnu11
进行编译)。
例如:
printf(R"(hello\nworld\n)");
编译并给出预期的行为。
答案 1 :(得分:0)
///我的经验。使用代码块,GCC MinGW。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <windows.h>
///#include <threads.h>
#include <conio.h>
/// #include <dos.h>
#include <direct.h>
int main(void)
{
printf(R"(.C with a Capital C file format does not support raw string )");
printf("\n");
printf(R"(.c with a small c file format does support raw string )");
printf("\n");
printf(R"( Raw string did not support \n new line )");
printf("\n");
printf(
R"(More reading material at - https: // en.wikipedia.org/wiki/String_literal#Raw_strings;)");
printf("\n");
printf(
R"(More reading material at - https: // en.wikipedia.org/wiki/String_literal;)");
printf("\n");
printf(
R"(More reading material at - https://stackoverflow.com/questions/24850244/does-c-support-raw-string-literals;)");
printf("\n");
printf(
R"(More reading material at - https: // docs.microsoft.com/en-us/cpp/c-language/c-string-literals?view=vs-2019)");
printf("\n");
printf(
R"(More reading material at-https: // docs.microsoft.com/en-us/cpp/c-language/string-literal-concatenation?view=vs-2019)");
printf("\n");
/// Raw string.
printf(R"(More reading material at - https://www.geeksforgeeks.org/const-qualifier-in-c/;)");
printf("\n");
return 0;
}