C预处理器的一个重要功能就是可以进行字符数组的拼接(character array concatenation)。
如果两个加引号的字符数组邻接,并且它们之间没有标点,编译器就会把这些字符数组连接成
如果两个加引号的字符数组邻接,并且它们之间没有标点,编译器就会把这些字符数组连接成
单个字符数组。当代码lie表宽度有限制时,字符数组的拼接就特别有用。
//: C02:Concat.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Character array Concatenation
#include <iostream>
using namespace std;
int main() {
cout << "This is far too long to put on a "
"single line but it can be broken up with "
"no ill effects\nas long as there is no "
"punctuation separating adjacent character "
"arrays.\n";
getchar();
} ///:~
初看,上述程序好像是错的,因为在每行结束没有分号。请记住C/C++是自由格式语言,
虽然一般情况下看到在每行的末尾带一个分号,但实际要求是在每个语句结束时才加分号,
而一个语句很可能要写好几行。
输出
This is far too long to put on a single line but it can be broken up with no ill effects
as long as there is no punctuation separating adjacent character arrays.