zh_CN/CodingStyle: improve translation
authorAndy Deng <theandy.deng@gmail.com>
Wed, 25 Jan 2017 04:14:31 +0000 (12:14 +0800)
committerJonathan Corbet <corbet@lwn.net>
Thu, 26 Jan 2017 22:27:59 +0000 (15:27 -0700)
Some of the sentences in Chapters 19 and 20 are re-translated:

- Fixed translation errors in Section 2 of Chapter 19 to prevent
  misleading readers;
- Retranslate some sentences to make the translation more clear and
  accurate.

Signed-off-by: Andy Deng <theandy.deng@gmail.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Documentation/translations/zh_CN/CodingStyle

index dc101f48e713c42305f1a2f9d7232d95f367d90f..45b8fc9ef8ea56ea36db3bd98b2f4d2658c46501 100644 (file)
@@ -735,22 +735,22 @@ Vim 能够解释这样的标记:
 
                第十九章:内联汇编
 
-在特定架构的代码中,你也许需要内联汇编来使用 CPU 接口和平台相关功能。在需要
-这么做时,不要犹豫。然而,当 C 可以完成工作时,不要无端地使用内联汇编。如果
\8f¯è\83½ï¼\8cä½ å\8f¯ä»¥å¹¶ä¸\94åº\94该ç\94¨ C å\92\8c硬件交äº\92
+在特定架构的代码中,你可能需要内联汇编与 CPU 和平台相关功能连接。需要这么做时
+就不要犹豫。然而,当 C 可以完成工作时,不要平白无故地使用内联汇编。在可能的情
\86µä¸\8bï¼\8cä½ å\8f¯ä»¥å¹¶ä¸\94åº\94该ç\94¨ C å\92\8c硬件æ²\9fé\80\9a
 
\80\83è\99\91å\8e»å\86\99é\80\9aç\94¨ä¸\80ç\82¹ç\9a\84å\86\85è\81\94æ±\87ç¼\96ä½\9c为ç®\80æ\98\8eç\9a\84è¾\85å\8a©å\87½æ\95°ï¼\8cè\80\8cä¸\8dæ\98¯é\87\8då¤\8då\86\99ä¸\8bå®\83们ç\9a\84ç»\86è\8a\82ã\80\82è®°ä½\8f
-内联汇编可以使用 C 参数。
¯·è\80\83è\99\91å\8e»å\86\99æ\8d\86ç»\91é\80\9aç\94¨ä½\8då\85\83 (wrap common bits) ç\9a\84å\86\85è\81\94æ±\87ç¼\96ç\9a\84ç®\80å\8d\95è¾\85å\8a©å\87½æ\95°ï¼\8cå\88«å\8e»é\87\8då¤\8d
\9c°å\86\99ä¸\8bå\8fªæ\9c\89ç»\86微差å¼\82å\86\85è\81\94æ±\87ç¼\96ã\80\82è®°ä½\8få\86\85è\81\94æ±\87ç¼\96å\8f¯ä»¥ä½¿ç\94¨ C å\8f\82æ\95°ã\80\82
 
-大而特殊的汇编函数应该放在 .S 文件中,对应 C 的原型定义在 C 头文件中。汇编
-函数的 C 原型应该使用 “asmlinkage”。
+大型,有一定复杂度的汇编函数应该放在 .S 文件内,用相应的 C 原型定义在 C 头文
+件中。汇编函数的 C 原型应该使用 “asmlinkage”。
 
-你可能需要将你的汇编语句标记为 volatile,来阻止 GCC 在没发现任何副作用后就
-移除了它。你不必总是这样做,虽然,这样可以限制不必要的优化。
+你可能需要把汇编语句标记为 volatile,用来阻止 GCC 在没发现任何副作用后就把它
+移除了。你不必总是这样做,尽管,这不必要的举动会限制优化。
 
\9c¨å\86\99ä¸\80个å\8c\85å\90«å¤\9aæ\9d¡æ\8c\87令ç\9a\84å\8d\95个å\86\85è\81\94æ±\87ç¼\96语å\8f¥æ\97¶ï¼\8cæ\8a\8aæ¯\8fæ\9d¡æ\8c\87令ç\94¨å¼\95å\8f·å­\97符串å\88\86离ï¼\8c并å\86\99å\9c¨
-单独一行,在每个字符串结尾,除了 \n\t 结尾之外,在汇编输出中适当地缩进下
-一条指令:
\9c¨å\86\99ä¸\80个å\8c\85å\90«å¤\9aæ\9d¡æ\8c\87令ç\9a\84å\8d\95个å\86\85è\81\94æ±\87ç¼\96语å\8f¥æ\97¶ï¼\8cæ\8a\8aæ¯\8fæ\9d¡æ\8c\87令ç\94¨å¼\95å\8f·å\88\86å\89²è\80\8cä¸\94å\90\84å\8d ä¸\80è¡\8cï¼\8c
+除了最后一条指令外,在每个指令结尾加上 \n\t,让汇编输出时可以正确地缩进下一条
+指令:
 
        asm ("magic %reg1, #42\n\t"
             "more_magic %reg2, %reg3"
@@ -759,33 +759,34 @@ Vim 能够解释这样的标记:
 
                第二十章:条件编译
 
-只要可能,就不要在 .c 文件里面使用预处理条件;这样做让代码更难阅读并且逻辑难以
-跟踪。替代方案是,在头文件定义函数在这些 .c 文件中使用这类的条件表达式,提供空
-操作的桩版本(译注:桩程序,是指用来替换一部分功能的程序段)在 #else 情况下,
-再从 .c 文件中无条件地调用这些函数。编译器会避免生成任何桩调用的代码,产生一致
-的结果,但逻辑将更加清晰。
+只要可能,就不要在 .c 文件里面使用预处理条件 (#if, #ifdef);这样做让代码更难
+阅读并且更难去跟踪逻辑。替代方案是,在头文件中用预处理条件提供给那些 .c 文件
+使用,再给 #else 提供一个空桩 (no-op stub) 版本,然后在 .c 文件内无条件地调用
+那些 (定义在头文件内的) 函数。这样做,编译器会避免为桩函数 (stub) 的调用生成
+任何代码,产生的结果是相同的,但逻辑将更加清晰。
 
-宁可编译整个函数,而不是部分函数或部分表达式。而不是在一个表达式添加 ifdef,
-解析部分或全部表达式到一个单独的辅助函数,并应用条件到该函数内。
+最好倾向于编译整个函数,而不是函数的一部分或表达式的一部分。与其放一个 ifdef
+在表达式内,不如分解出部分或全部表达式,放进一个单独的辅助函数,并应用预处理
+条件到这个辅助函数内。
 
-如果你有一个在特定配置中可能是未使用的函数或变量,编译器将警告它定义了但未使用,
 \87è®°è¿\99个å®\9aä¹\89为 __maybe_unused è\80\8cä¸\8dæ\98¯å°\86å®\83å\8c\85å\90«å\9c¨ä¸\80个é¢\84å¤\84ç\90\86æ\9d¡ä»¶ä¸­ã\80\82ï¼\88ç\84¶è\80\8cï¼\8cå¦\82æ\9e\9c
-一个函数或变量总是未使用的,就直接删除它。)
+如果你有一个在特定配置中,可能变成未使用的函数或变量,编译器会警告它定义了但
\9cªä½¿ç\94¨ï¼\8cæ\8a\8aå®\83æ \87记为 __maybe_unused è\80\8cä¸\8dæ\98¯å°\86å®\83å\8c\85å\90«å\9c¨ä¸\80个é¢\84å¤\84ç\90\86æ\9d¡ä»¶ä¸­ã\80\82\84¶è\80\8cï¼\8cå¦\82
+果一个函数或变量总是未使用,就直接删除它。)
 
\9c¨ä»£ç \81中ï¼\8cå\8f¯è\83½ç\9a\84æ\83\85å\86µä¸\8bï¼\8c使用 IS_ENABLED 宏来转化某个 Kconfig 标记为 C 的布尔
-表达式,并在正常的 C 条件中使用它:
\9c¨ä»£ç \81中ï¼\8cå°½å\8f¯è\83½å\9c°使用 IS_ENABLED 宏来转化某个 Kconfig 标记为 C 的布尔
+表达式,并在一般的 C 条件中使用它:
 
        if (IS_ENABLED(CONFIG_SOMETHING)) {
                ...
        }
 
-编译器会无条件地做常数合并,就像使用 #ifdef 那样,包含或排除代码块,所以这不会
-带来任何运行时开销。然而,这种方法依旧允许 C 编译器查看块内的代码,并检查它的正确
-性(语法,类型,符号引用,等等)。因此,如果条件不满足,代码块内的引用符号将不存在,
½ å¿\85须继续使用 #ifdef。
+编译器会做常量折叠,然后就像使用 #ifdef 那样去包含或排除代码块,所以这不会带
+来任何运行时开销。然而,这种方法依旧允许 C 编译器查看块内的代码,并检查它的正
+确性 (语法,类型,符号引用,等等)。因此,如果条件不满足,代码块内的引用符号就
¸\8då­\98å\9c¨æ\97¶ï¼\8cä½ è¿\98æ\98¯å¿\85é¡»å\8e»用 #ifdef。
 
-在任何有意义的 #if 或 #ifdef 块的末尾(超过几行),在 #endif 同一行的后面写下
-注释,指出该条件表达式被使用。例如:
+在任何有意义的 #if 或 #ifdef 块的末尾 (超过几行的),在 #endif 同一行的后面写
+下注解,注释这个条件表达式。例如:
 
        #ifdef CONFIG_SOMETHING
        ...