有没有办法在 C 中使用多行纯文本、常量文字、脿 la Perl?也许一些解析#include文件的技巧?我想不出一个,但是男孩,那会很好。我知道它会在 C0x 中。
#include
嗯......有点。最简单的方法是使用编译器连接相邻字符串文字的事实:
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.";
缩进无关紧要,因为它不在引号内。
您也可以这样做,只要您小心避开嵌入的换行符。不这样做,就像我的第一个答案一样,将无法编译:
常量字符 *text2 = “在这里,另一方面,我已经疯了\ 真的让文字跨越几行,\ 无需费心引用每一行的 \ 内容。这行得通,但你不能缩进。";
再次注意每行末尾的反斜杠,它们必须在行结束之前,它们正在转义源中的换行符,因此一切都好像换行符不存在一样。在有反斜杠的位置,字符串中不会出现换行符。使用这种形式,你显然不能缩进文本,因为缩进会成为字符串的一部分,用随机空格弄乱它。