.. include:: ../disclaimer-zh_CN.rst :Original: :ref:`Documentation/process/programming-language.rst <programming_language>` :Translator: Alex Shi <alex.shi@linux.alibaba.com> .. _cn_programming_language: ç¨åºè®¾è®¡è¯è¨ ============ å æ ¸æ¯ç¨Cè¯è¨ :ref:`c-language <cn_c-language>` ç¼åçãæ´åç¡®å°è¯´ï¼å æ ¸é常æ¯ç¨ :ref:`gcc <cn_gcc>` å¨ ``-std=gnu89`` :ref:`gcc-c-dialect-options <cn_gcc-c-dialect-options>` ä¸ç¼è¯çï¼ISO C90ç GNU æ¹è¨ï¼ å æ¬ä¸äºC99ç¹æ§ï¼ è¿ç§æ¹è¨å å«å¯¹è¯è¨ :ref:`gnu-extensions <cn_gnu-extensions>` ç许å¤æ©å±ï¼å½ç¶ï¼å®ä»¬è®¸å¤é½å¨å æ ¸ä¸ä½¿ç¨ã 对äºä¸äºä½ç³»ç»æï¼æä¸äºä½¿ç¨ :ref:`clang <cn_clang>` å :ref:`icc <cn_icc>` ç¼è¯å æ ¸ çæ¯æï¼å°½ç®¡å¨ç¼åæ¤ææ¡£æ¶è¿æ²¡æå®æï¼ä»éè¦ç¬¬ä¸æ¹è¡¥ä¸ã å±æ§ ---- å¨æ´ä¸ªå æ ¸ä¸ä½¿ç¨çä¸ä¸ªå¸¸è§æ©å±æ¯å±æ§ï¼attributesï¼ :ref:`gcc-attribute-syntax <cn_gcc-attribute-syntax>` å±æ§å 许å°å®ç°å®ä¹çè¯ä¹å¼å ¥è¯è¨å®ä½ï¼å¦åéãå½æ°æç±»åï¼ï¼èæ é对è¯è¨è¿è¡ é大çè¯æ³æ´æ¹ï¼ä¾å¦æ·»å æ°å ³é®åï¼ :ref:`n2049 <cn_n2049>` å¨æäºæ åµä¸ï¼å±æ§æ¯å¯éçï¼å³ä¸æ¯æè¿äºå±æ§çç¼è¯å¨ä»ç¶åºè¯¥çææ£ç¡®ç代ç ï¼ å³ä½¿å ¶é度è¾æ ¢ææ§è¡çç¼è¯æ¶æ£æ¥/è¯æ次æ°ä¸å¤ï¼ å æ ¸å®ä¹äºä¼ªå ³é®åï¼ä¾å¦ï¼ ``pure`` ï¼ï¼èä¸æ¯ç´æ¥ä½¿ç¨GNUå±æ§è¯æ³ï¼ä¾å¦, ``__attribute__((__pure__))`` ï¼ï¼ä»¥æ£æµå¯ä»¥ä½¿ç¨åªäºå ³é®åå/æ缩ç代ç , å ·ä½ è¯·åé ``include/linux/compiler_attributes.h`` .. _cn_c-language: c-language http://www.open-std.org/jtc1/sc22/wg14/www/standards .. _cn_gcc: gcc https://gcc.gnu.org .. _cn_clang: clang https://clang.llvm.org .. _cn_icc: icc https://software.intel.com/en-us/c-compilers .. _cn_gcc-c-dialect-options: c-dialect-options https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html .. _cn_gnu-extensions: gnu-extensions https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html .. _cn_gcc-attribute-syntax: gcc-attribute-syntax https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html .. _cn_n2049: n2049 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2049.pdf