问题

有没有办法在C中使用multiline sill-text,常量文字,对于la Perl?也许有一些使用#include处理文件的解析技巧?我想不出一个,但是男孩,这很好.我知道它会在C 0x中.

  最佳答案

嗯...对不起.最简单的是使用相邻的字符串文字由编译器连接的事实:

 const char *text =
  "This text is pretty long, but will be "
  "concatenated into just a single string. "
  "The disadvantage is that you have to quote "
  "each part, and newlines must be literal as "
  "usual.";
 

缩进并不重要,因为它不在引号中.

您也可以这样做,只要您关心转义嵌入式换行符.如果没有这样做,就像我的第一个答案一样,将不编译:

const char *text2 =
  "Here, on the other hand, I've gone crazy \
and really let the literal span several lines, \
without bothering with quoting each line's \
content. This works, but you can't indent.";

再次,请注意每行结尾处的反斜线,它们必须在行结束之前立即存在,它们在源中转义换行,以便一切都起作用,好像换行没有.在有反斜线的位置,字符串中没有新行.使用这种表单,显然无法缩进文本,因为缩进将成为字符串的一部分,用随机空间将其装饰.

  相同标签的其他问题

c++string-literals