不像python , C++需要一套基本框架:
#include<iostream>
using namespace std;
int main()
{
...
return 0;
}
让我们重新审视一下这个框架。
实际上,第一行是插入了一个名为iostream的头文件。
说白点,就是把iostream这个文件的内容复制到程序中。
而在Dev-c++中,我们可以把鼠标对准iostream,使用ctrl + 左键查看内容。
操作后,iostream库的内容如下:
//一大堆英文注释
#ifndef _GLIBCXX_IOSTREAM
#define _GLIBCXX_IOSTREAM 1
#pragma GCC system_header
#include <bits/c++config.h>
#include <ostream>
#include <istream>
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
//又是一堆注释
extern istream cin; /// Linked to standard input
extern ostream cout; /// Linked to standard output
extern ostream cerr; /// Linked to standard error (unbuffered)
extern ostream clog; /// Linked to standard error (buffered)
#ifdef _GLIBCXX_USE_WCHAR_T
extern wistream wcin; /// Linked to standard input
extern wostream wcout; /// Linked to standard output
extern wostream wcerr; /// Linked to standard error (unbuffered)
extern wostream wclog; /// Linked to standard error (buffered)
#endif
//@}
// For construction of filebuffers for cout, cin, cerr, clog et. al.
static ios_base::Init __ioinit;
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
#endif /* _GLIBCXX_IOSTREAM */
实际上,在作者的环境下,这个文件有79行。
也就是说,原本写1行的程序,现在能凑到80行(应该没人能一行写完吧)
但这还远远不够。
我们注意到,上面的9-11行分别又插入了三个头文件,所以我们可以直接复制:
#ifndef _GLIBCXX_OSTREAM
#define _GLIBCXX_OSTREAM 1
#pragma GCC system_header
#include <ios>
#include <bits/ostream_insert.h>
............
#include <bits/ostream.tcc>
#endif /* _GLIBCXX_OSTREAM */
这是ostream的预处理部分(源文件有611行,删掉注释也有几百行)。
看到6、7、11行,又是三个头文件,头文件里还有头文件,麻了......
最后,我们把头文件展开,注释删掉,main函数放在最后就好。
注意,一般来说看到很长的代码时人的第一反应是震惊,然后一般会拉到最下边查看行数。
所以,可以把英文注释剪切到最下边或自己写一个头文件,把main函数放进去,插在程序最后。
总之,别让朋友发现就行!
另外,看我文章的人只有不到5%关注了我,
如果这对您有所帮助,请关注我。这是免费的,您随时可以取消,谢谢!