Uncategorized

C++ Header

preface Recently, I’ve been tortured by the redefine error of C++ header files. And I found this post pretty good. Thus, I decide to translate it for better understanding. For the origin document, please go to cpp forum for details. 为什么需要头文件 加速编译。 随着代码量的增多,如果所有代码都放一个文件里,会使得每次修改都需要编译整个文件,即使只是改了一个小符号,也会使整个文件重新编译。在代码量少的情况下这不是问题,但对于大项目,一次编译通常需要好几分钟。 让代码更整洁,更有组织。 将不同功能或概念拆分到不同的特定文件中,会使得修改和查找更方便。 便于将接口和实现分离开 头文件会带来的缺点是,如果不能很好的理解其中的工作原理,会使得编写过程更复杂。 C++程序的编译通常有两个部分。首先每个源文件各自编译,编译器为每一个编译后的源文件生成目标文件(Object Files)。所有源文件都各自编译完成吼,编译器会将这些目标文件联系起来(link),然后生成二进制可运行代码。由于各自独立编译,所以源文件之间互相不会知道其他文件中的操作,因此我们需要一个头文件(Header Files)。头文件会使得接口对其他文件.cpp源文件可见,同时能让其具体实现保存在其他.cpp源文件中。 Read more…

By org2blog, ago
Notes

Piecemeal Notes

emacs emacs start from scratch melpha – for package install add to init file (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (when (< emacs-major-version 24) (add-to-list 'pacfffkage-archives '("gnu" . "http://elpa.gnu.org/packages/"))) (package-initialize) restart emacs call list-packages org mode practice default indent in init file: Emacs 24: (org-indent-mode 1) Emacs 24+: (add-hook Read more…

By lizard, ago