~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/process/programming-language.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. include:: ../disclaimer-zh_CN.rst
  2 
  3 :Original: :ref:`Documentation/process/programming-language.rst <programming_language>`
  4 :Translator: Alex Shi <alex.shi@linux.alibaba.com>
  5 
  6 .. _cn_programming_language:
  7 
  8 程序设计语言
  9 ============
 10 
 11 内核是用C语言 :ref:`c-language <cn_c-language>` 编写的。更准确地说,内核通常是用 :ref:`gcc <cn_gcc>`
 12 在 ``-std=gnu11`` :ref:`gcc-c-dialect-options <cn_gcc-c-dialect-options>` 下编译的:ISO C11的 GNU 方言
 13 
 14 这种方言包含对语言 :ref:`gnu-extensions <cn_gnu-extensions>` 的许多扩展,当然,它们许多都在内核中使用。
 15 
 16 对于一些体系结构,有一些使用 :ref:`clang <cn_clang>` 和 :ref:`icc <cn_icc>` 编译内核
 17 的支持,尽管在编写此文档时还没有完成,仍需要第三方补丁。
 18 
 19 属性
 20 ----
 21 
 22 在整个内核中使用的一个常见扩展是属性(attributes) :ref:`gcc-attribute-syntax <cn_gcc-attribute-syntax>`
 23 属性允许将实现定义的语义引入语言实体(如变量、函数或类型),而无需对语言进行
 24 重大的语法更改(例如添加新关键字) :ref:`n2049 <cn_n2049>`
 25 
 26 在某些情况下,属性是可选的(即不支持这些属性的编译器仍然应该生成正确的代码,
 27 即使其速度较慢或执行的编译时检查/诊断次数不够)
 28 
 29 内核定义了伪关键字(例如, ``pure`` ),而不是直接使用GNU属性语法(例如,
 30 ``__attribute__((__pure__))`` ),以检测可以使用哪些关键字和/或缩短代码, 具体
 31 请参阅 ``include/linux/compiler_attributes.h``
 32 
 33 .. _cn_c-language:
 34 
 35 c-language
 36    http://www.open-std.org/jtc1/sc22/wg14/www/standards
 37 
 38 .. _cn_gcc:
 39 
 40 gcc
 41    https://gcc.gnu.org
 42 
 43 .. _cn_clang:
 44 
 45 clang
 46    https://clang.llvm.org
 47 
 48 .. _cn_icc:
 49 
 50 icc
 51    https://software.intel.com/en-us/c-compilers
 52 
 53 .. _cn_gcc-c-dialect-options:
 54 
 55 c-dialect-options
 56    https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
 57 
 58 .. _cn_gnu-extensions:
 59 
 60 gnu-extensions
 61    https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html
 62 
 63 .. _cn_gcc-attribute-syntax:
 64 
 65 gcc-attribute-syntax
 66    https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html
 67 
 68 .. _cn_n2049:
 69 
 70 n2049
 71    http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php