mirror of
https://github.com/zh-google-styleguide/zh-google-styleguide.git
synced 2026-08-13 22:13:27 +08:00
fix translation in #1.5
This commit is contained in:
@@ -80,6 +80,7 @@
|
||||
void test(D* x) { f(x); } // calls f(B*)
|
||||
|
||||
如果 ``#include`` 被 ``B`` 和 ``D`` 的前置声明替代, ``test()`` 就会调用 ``f(void*)`` .
|
||||
|
||||
* 前置声明了不少来自头文件的 symbol 时,就会比单单一行的 ``include`` 冗长。
|
||||
* 仅仅为了能前置声明而重构代码(比如用指针成员代替对象成员)会使代码变得更慢更复杂.
|
||||
|
||||
@@ -130,11 +131,11 @@
|
||||
|
||||
项目内头文件应按照项目源代码目录树结构排列, 避免使用 UNIX 特殊的快捷目录 ``.`` (当前目录) 或 ``..`` (上级目录). 例如, ``google-awesome-project/src/base/logging.h`` 应该按如下方式包含:
|
||||
|
||||
.. code-block:: c++
|
||||
.. code-block:: c++
|
||||
|
||||
#include "base/logging.h"
|
||||
#include "base/logging.h"
|
||||
|
||||
又如, ``dir/foo.cc`` 的主要作用是实现或测试 ``dir2/foo2.h`` 的功能, ``foo.cc`` 中包含头文件的次序如下:
|
||||
又如, ``dir/foo.cc`` 或 ``dir/foo_test.cc`` 的主要作用是实现或测试 ``dir2/foo2.h`` 的功能, ``foo.cc`` 中包含头文件的次序如下:
|
||||
|
||||
#. ``dir2/foo2.h`` (优先位置, 详情如下)
|
||||
#. C 系统文件
|
||||
@@ -146,9 +147,11 @@
|
||||
|
||||
``dir/foo.cc`` 和 ``dir2/foo2.h`` 通常位于同一目录下 (如 ``base/basictypes_unittest.cc`` 和 ``base/basictypes.h``), 但也可以放在不同目录下.
|
||||
|
||||
按字母顺序对头文件包含进行二次排序是不错的主意。注意较老的代码可不符合这条规则,要在方便的时候改正它们。
|
||||
按字母顺序分别对每种类型的头文件进行二次排序是不错的主意。注意较老的代码可不符合这条规则,要在方便的时候改正它们。
|
||||
|
||||
您所依赖的 symbols 被哪些头文件所定义,您就应该包含(include)哪些头文件,:ref:`forward-declaration` 情况除外。比如您要用到 ``bar.h`` 中的某个 symbol, 哪怕您所包含的 ``foo.h`` 已经包含了 ``bar.h``, 也照样得包含 ``bar.h``, 除非 ``foo.h`` 有明确说明它会自动向您提供 ``bar.h`` 中的 symbol. 不过,凡是 cc 文件所对应的「相关头文件」已经包含的,就不用再重复包含进其 cc 文件里面了,就像 ``foo.cc`` 只包含 ``foo.h`` 就够了,不用再管后者所包含的其它内容。
|
||||
您所依赖的符号 (symbols) 被哪些头文件所定义,您就应该包含(include)哪些头文件,`前置声明`__ (forward declarations) 情况除外。比如您要用到 ``bar.h`` 中的某个符号, 哪怕您所包含的 ``foo.h`` 已经包含了 ``bar.h``, 也照样得包含 ``bar.h``, 除非 ``foo.h`` 有明确说明它会自动向您提供 ``bar.h`` 中的 symbol. 不过,凡是 cc 文件所对应的「相关头文件」已经包含的,就不用再重复包含进其 cc 文件里面了,就像 ``foo.cc`` 只包含 ``foo.h`` 就够了,不用再管后者所包含的其它内容。
|
||||
|
||||
__ forward-declarations_
|
||||
|
||||
举例来说, ``google-awesome-project/src/foo/internal/fooserver.cc`` 的包含次序如下:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user