.. SPDX-License-Identifier: GPL-2.0 .. include:: ../disclaimer-zh_TW.rst :Original: :ref:`Documentation/process/programming-language.rst <programming_language>` :Translator: Alex Shi <alex.shi@linux.alibaba.com> Hu Haowen <src.res@email.cn> .. _tw_programming_language: 程åºè¨è¨ˆèªžè¨€ ============ å…§æ ¸æ˜¯ç”¨C語言 :ref:`c-language <tw_c-language>` ç·¨å¯«çš„ã€‚æ›´æº–ç¢ºåœ°èªªï¼Œå…§æ ¸é€šå¸¸æ˜¯ç”¨ :ref:`gcc <tw_gcc>` 在 ``-std=gnu11`` :ref:`gcc-c-dialect-options <tw_gcc-c-dialect-options>` 下編è¯çš„:ISO C11çš„ GNU 方言 這種方言包å«å°èªžè¨€ :ref:`gnu-extensions <tw_gnu-extensions>` çš„è¨±å¤šæ“´å±•ï¼Œç•¶ç„¶ï¼Œå®ƒå€‘è¨±å¤šéƒ½åœ¨å…§æ ¸ä¸ä½¿ç”¨ã€‚ å°æ–¼ä¸€äº›é«”ç³»çµæ§‹ï¼Œæœ‰ä¸€äº›ä½¿ç”¨ :ref:`clang <tw_clang>` å’Œ :ref:`icc <tw_icc>` ç·¨è¯å…§æ ¸ 的支æŒï¼Œå„˜ç®¡åœ¨ç·¨å¯«æ¤æ–‡æª”時還沒有完æˆï¼Œä»éœ€è¦ç¬¬ä¸‰æ–¹è£œä¸ã€‚ 屬性 ---- åœ¨æ•´å€‹å…§æ ¸ä¸ä½¿ç”¨çš„一個常見擴展是屬性(attributes) :ref:`gcc-attribute-syntax <tw_gcc-attribute-syntax>` 屬性å…許將實ç¾å®šç¾©çš„語義引入語言實體(如變é‡ã€å‡½æ•¸æˆ–類型),而無需å°èªžè¨€é€²è¡Œ é‡å¤§çš„èªžæ³•æ›´æ”¹ï¼ˆä¾‹å¦‚æ·»åŠ æ–°é—œéµå—) :ref:`n2049 <tw_n2049>` 在æŸäº›æƒ…æ³ä¸‹ï¼Œå±¬æ€§æ˜¯å¯é¸çš„(å³ä¸æ”¯æŒé€™äº›å±¬æ€§çš„ç·¨è¯å™¨ä»ç„¶æ‡‰è©²ç”Ÿæˆæ£ç¢ºçš„代碼, å³ä½¿å…¶é€Ÿåº¦è¼ƒæ…¢æˆ–執行的編è¯æ™‚檢查/診斷次數ä¸å¤ ) å…§æ ¸å®šç¾©äº†åƒžé—œéµå—(例如, ``pure`` ),而ä¸æ˜¯ç›´æŽ¥ä½¿ç”¨GNU屬性語法(例如, ``__attribute__((__pure__))`` ),以檢測å¯ä»¥ä½¿ç”¨å“ªäº›é—œéµå—å’Œ/或縮çŸä»£ç¢¼, å…·é«” è«‹åƒé–± ``include/linux/compiler_attributes.h`` .. _tw_c-language: c-language http://www.open-std.org/jtc1/sc22/wg14/www/standards .. _tw_gcc: gcc https://gcc.gnu.org .. _tw_clang: clang https://clang.llvm.org .. _tw_icc: icc https://software.intel.com/en-us/c-compilers .. _tw_gcc-c-dialect-options: c-dialect-options https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html .. _tw_gnu-extensions: gnu-extensions https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html .. _tw_gcc-attribute-syntax: gcc-attribute-syntax https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html .. _tw_n2049: n2049 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf