豆包是什么意思| 老人怕冷是什么原因| 孕妇早餐吃什么| 脑血流图能检查出什么| 孕期什么时候补铁| 鼻子出血是什么原因| 鬼见愁是什么意思| 固涩是什么意思| 经期延长是什么原因引起的| 肺气肿挂什么科| 香砂六君丸治什么病| ab型血和o型血的孩子是什么血型| 秋葵有什么营养| 心机boy什么意思| 天下乌鸦一般黑是什么意思| 中规中矩什么意思| 黑木耳是什么意思| 求婚是什么意思| 嘴唇发麻什么病兆| 艾灸能治什么| 莲藕不能和什么一起吃| 大陆人去香港需要什么证件| 小腹痛什么原因| 尘螨是什么| 血压偏低是什么原因| 桃花什么季节开| 糖尿病吃什么食物| 铿锵玫瑰是什么意思| 独活主治什么病| pbg是什么意思| 睡不着吃什么药最有效| 肠炎能吃什么水果| 脸上长黑痣是什么原因| 藿香正气水有什么功效| 噤若寒蝉是什么生肖| 西瓜又什么又什么| 突然暴瘦是什么原因| 肝不好吃什么水果| 鸡为什么吃沙子| 色素沉着有什么办法可以去除| 血脂高有什么症状表现| 脱发去医院挂什么科| 用淘米水洗脸有什么好处| 穿什么衣服显白| 囟门是什么| 沙蟹吃什么| 生地黄是什么| 什么东西比乌鸦更讨厌| 摩登女郎是什么意思| 三千烦恼丝什么意思| 阴道口溃疡用什么药| 呼吸音粗是什么原因| qid医学上是什么意思| 颈椎头晕吃什么药| 怀孕期间吃什么对胎儿发育好| 重金属中毒喝什么解毒| eicu是什么意思| 梦见自己骑马是什么意思| 眼球内容物包括什么| 开塞露用多了有什么副作用| 倒拔垂杨柳是什么意思| 双肾囊性灶是什么意思| 乳腺纤维瘤和乳腺结节有什么区别| 4月4日什么星座| 甲龙吃什么| 医院归什么部门管理| 1960年是什么年| 87年属什么的| 孕期用什么护肤品| 两边白头发多是什么原因造成的| 口苦吃什么好| 血小板偏低有什么危害| 32年婚姻是什么婚| 金丝熊吃什么| 慢性胃炎要吃什么药| 护理部是干什么的| 执子之手与子偕老是什么意思| 莫名是什么意思| 兆后面的单位是什么| 蜕变是什么意思| 孕酮低吃什么可以提高孕酮| 什么纸贵| 今年什么时候进入伏天| 一棵树是什么品牌| 腰间盘突出吃什么药好| 凉拌菜用什么醋好| 尿渗透压低是什么原因| 猪儿虫是什么意思| 最难写的字是什么| 甲状腺结节看什么科| 飞黄腾达是什么意思| 肩膀酸痛是什么原因| 普工是什么| 行号是什么| 尿酸盐结晶是什么意思| 大便的颜色代表什么| 什么叫夏至| 减肥期间可以喝什么茶| 木薯粉是什么做的| 常山现在叫什么| 马天尼是什么酒| 慢性胃炎可以吃什么水果| 殚精竭虑什么意思| 手脚发热吃什么药| 睾丸突然疼痛什么原因| 进产房吃什么补充体力| 什么人群不适合吃阿胶糕| 鸭胗是鸭的什么部位| 梦见搞卫生什么意思| 剑走偏锋是什么意思| 正常高压是什么意思| 三天没有大便是什么原因| 牛马是什么意思| 孕妇喝椰子水有什么好处| 最好的红酒是什么牌子| 双重所有格是什么意思| rap什么意思| 井泉水命什么意思| 肌肉疼痛吃什么药| 恐龙灭绝的原因是什么| 四维什么时候做最佳| 什么是集成灶| 喝什么补血| 公积金取出来有什么影响| 荨麻疹打什么针| 怀孕1个月有什么症状| 制加手念什么| 脸上发红是什么原因| 血脂高吃什么油好| 孕妇吃榴莲对胎儿有什么好处| 独具一格是什么意思| 大象像什么| 胆固醇高吃什么可以降下来| 三点水山今读什么| 手和脚发麻是什么原因| 农历五月十八是什么星座| 措施是什么意思| 套马的汉子你威武雄壮是什么歌| 为什么额头反复长痘痘| hp阳性是什么意思| 十加一笔是什么字| 什么面什么方| 猪巴皮是什么材质| 庚是什么意思| 冬眠的动物有什么| 4朵玫瑰代表什么意思| 什么样的小船| 4月4号是什么星座| 验大便能查出什么| 药流可以吃什么水果| 白癜风吃什么药| 什么的杜鹃花| 快递属于什么行业| 有什么办法让男人死精| rebecca什么意思| 宝宝乳糖不耐受喝什么奶粉比较好| 脸发烫是什么原因| 更年期综合症吃什么药| 放屁臭鸡蛋味什么原因| 有点尿血是什么原因| 肠息肉是什么原因造成的| 结节是什么东西| 什么是直流电| 五行缺木是什么意思| 薄荷叶泡水喝有什么好处| 情结是什么意思| 秦王是什么生肖| 塞飞洛是什么档次的包| 禁令是什么意思| 控诉是什么意思| 排卵期什么症状和反应| 专案组是什么意思| 蚊虫叮咬红肿用什么药快速消肿| 经常喝咖啡有什么好处和坏处| 1月16日什么星座| 都有什么瓜| 水当当是什么意思| 小孩子为什么会得抽动症| 谷草谷丙偏低代表什么| 急是什么结构| 沉肩是什么意思| 立秋是什么时候| 铁观音适合什么季节喝| 什么都值得买| 榴莲和什么食物相克| 什么是uv| 西米是什么做成的| 什么是大专| 野生天麻长什么样图片| 衣冠禽兽指什么生肖| 睡觉腿抽筋是什么原因| 甲减是什么原因引起的| 痔疮发痒是什么原因| 什么食物对眼睛好| 唱过什么歌| 什么叫放疗| 阿僧只劫是什么意思| cno什么意思| 口臭口苦吃什么药最好| 什么的原始森林| 一直打嗝是什么原因引起的| 桦树茸什么功效| 隐血阴性是什么意思| 肾虚吃什么| 什么是靶向药| 什么是roi| 梗犬是什么意思| kodice是什么牌子| 孕妇吃什么牌子奶粉| 大白条是什么鱼| 红豆配什么打豆浆好喝| 当令是什么意思| 11月是什么星座| 养老保险什么时候开始交| 小孩肛门瘙痒什么原因| 辣椒炒肉用什么肉| 牙齿浮起来是什么原因| 韭黄是什么| nbp是什么意思| 小产后可以吃什么水果| 看皮肤挂什么科| 血压高喝什么茶| 做梦笑醒了有什么征兆| 肠息肉有什么症状| 医学生规培是什么意思| 大便呈绿色是什么原因| 脑血栓什么症状| 压片糖果是什么意思| 东北是什么气候| 弱精症有什么症状表现| 蛇脱皮在家有什么预兆| 舟字五行属什么| 焗油和染发有什么区别| 肚子两侧疼是什么原因| 少腹是什么意思| 心灵鸡汤是什么意思| 微循环是什么意思| 女人严重口臭挂什么科| 蛔虫是什么意思| 经常流鼻血是什么情况| 胸膜炎什么症状| 上午9点是什么时辰| 复检是什么意思| 倾巢出动是什么意思| 脑血管堵塞会有什么后果| 排骨炖什么最好吃| 日和立念什么| 小孩检查微量元素挂什么科| 并发是什么意思| 什么叫引流| 拜阿司匹林什么时间吃最好| 月经吃什么水果好| 营养过剩会导致什么| 水浒传有什么故事| 2026年属什么| 宫颈癌是什么| 马失前蹄下一句是什么| 湖北九头鸟是什么意思| cpap是什么意思| 青鱼是什么鱼| 性生活过多有什么危害| 九月六号是什么星座| 梦到自己快要死了是什么意思| 穷凶极恶是什么生肖| 百度

人工智能产业快速发展 2020年规模将破1600亿

(Redirected from C89 (C version))
百度 报道称,纽约爱乐乐团自2012年以来一直举行正式演出庆祝中国的春节,这是其提高管弦乐队的国际地位,并与一个人数迅速增加的传统音乐听众群体建立联系的努力的一部分。

ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). Historically, the names referred specifically to the original and best-supported version of the standard (known as C89 or C90). Software developers writing in C are encouraged to conform to the standards, as doing so helps portability between compilers.

History and outlook

edit

The first standard for C was published by ANSI. Although this document was subsequently adopted by ISO/IEC and subsequent revisions published by ISO/IEC have been adopted by ANSI, "ANSI C" is still used to refer to the standard.[1] While some software developers use the term ISO C, others are standards-body neutral and use Standard C.

Informal specification: K&R C (C78)

edit

Informal specification in 1978 (Brian Kernighan and Dennis Ritchie book The C Programming Language).

Standardizing C

edit

In 1983, the American National Standards Institute formed a committee, X3J11, to establish a standard specification of C. In 1985, the first Standard Draft was released, sometimes referred to as C85. In 1986, another Draft Standard was released, sometimes referred to as C86. The prerelease Standard C was published in 1988, and sometimes referred to as C88.[2]

The ANSI standard was completed in 1989 and ratified as ANSI X3.159-1989 "Programming Language C." This version of the language is often referred to as "ANSI C". Later on sometimes the label "C89" is used to distinguish it from C90 but using the same labeling method.

The same standard as C89 was ratified by ISO/IEC as ISO/IEC 9899:1990, with only formatting changes,[3] which is sometimes referred to as C90. Therefore, the terms "C89" and "C90" refer to a language that is virtually identical.

This standard has been withdrawn by both ANSI/INCITS[4] and ISO/IEC.[5]

In 1995, the ISO/IEC published an extension, called Amendment?1, for the C standard. Its full name finally was ISO/IEC 9899:1990/AMD1:1995 or nicknamed C95. Aside from error correction there were further changes to the language capabilities,[6][7] such as:

  • Improved multi-byte and wide character support in the standard library, introducing <wchar.h> and <wctype.h> as well as multi-byte I/O
  • Addition of digraphs to the language
  • Specification of standard macros for the alternative specification of operators, e.g. and for &&
  • Specification of the standard macro __STDC_VERSION__

In addition to the amendment, two technical corrigenda were published by ISO for C90:

  • ISO/IEC 9899:1990/Cor 1:1994 TCOR1 in 1994[8]
  • ISO/IEC 9899:1990/Cor 2:1996 in 1996[9]

Preprocessor test for C95 compatibility

edit
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L

/* C95 compatible source code. */
#elif defined(__STDC__)
/* C89 compatible source code. */
#endif

In March 2000, ANSI adopted the ISO/IEC 9899:1999 standard.[10] This standard is commonly referred to as C99. Some notable additions to the previous standard include:

Three technical corrigenda were published by ISO for C99:

  • ISO/IEC 9899:1999/Cor 1:2001(E)
  • ISO/IEC 9899:1999/Cor 2:2004(E)
  • ISO/IEC 9899:1999/Cor 3:2007(E), notable for deprecating the standard library function gets

This standard has been withdrawn by both ANSI/INCITS[11] and ISO/IEC[12] in favour of C11.

C11 was officially ratified and published on December 8, 2011. Notable features include improved Unicode support, type-generic expressions using the new _Generic keyword, a cross-platform multi-threading API (threads.h), and atomic types support in both core language and the library (stdatomic.h).

One technical corrigendum has been published by ISO for C11:

  • ISO/IEC 9899:2011/Cor 1:2012[13]

C17 was published in June 2018.[14] Rather than introducing new language features, it only addresses defects in C11.[15]

C23 was published in October 2024, and is the current standard for the C programming language.[16]

edit

As part of the standardization process, ISO/IEC also publishes technical reports and specifications related to the C language:

  • ISO/IEC TR 19769:2004,[17] on library extensions to support Unicode transformation formats, integrated into C11
  • ISO/IEC TR 24731-1:2007,[18] on library extensions to support bounds-checked interfaces, integrated into C11
  • ISO/IEC TR 18037:2008,[19] on embedded C extensions
  • ISO/IEC TR 24732:2009,[20] on decimal floating point arithmetic, superseded by ISO/IEC TS 18661-2:2015
  • ISO/IEC TR 24747:2009,[21] on special mathematical functions,
  • ISO/IEC TR 24731-2:2010,[22] on library extensions to support dynamic allocation functions
  • ISO/IEC TS 17961:2013,[23] on secure coding in C
  • ISO/IEC TS 18661-1:2014,[24] on IEC 60559:2011-compatible binary floating-point arithmetic
  • ISO/IEC TS 18661-2:2015,[25] on IEC 60559:2011-compatible decimal floating point arithmetic
  • ISO/IEC TS 18661-3:2015,[26] on IEC 60559:2011-compatible interchange and extended floating-point types
  • ISO/IEC TS 18661-4:2015,[27] on IEC 60559:2011-compatible supplementary functions

More technical specifications are in development and pending approval, including the fifth and final part of TS 18661, a software transactional memory specification, and parallel library extensions.[28]

Support from major compilers

edit

ANSI C is supported by almost all the widely used compilers. GCC and Clang are two major C compilers popular today, both based on the C11 with updates including changes from later specifications such as C17.[29][30] Any source code written only in standard C and without any hardware dependent assumptions is virtually guaranteed to compile correctly on any platform with a conforming C implementation. Without such precautions, most programs may compile only on a certain platform or with a particular compiler, due, for example, to the use of non-standard libraries, such as GUI libraries, or to the reliance on compiler- or platform-specific attributes such as the exact size of certain data types and byte endianness.

Compliance detectability

edit

To mitigate the differences between K&R C and the ANSI C standard, the __STDC__ ("standard c") macro can be used to split code into ANSI and K&R sections.

 #if defined(__STDC__) && __STDC__
 extern int getopt(int, char * const *, const char *);
 #else
 extern int getopt();
 #endif

In the above example, a prototype is used in a function declaration for ANSI compliant implementations, while an obsolescent non-prototype declaration is used otherwise. Those are still ANSI-compliant as of C99. Note how this code checks both definition and evaluation: this is because some implementations may set __STDC__ to zero to indicate non-ANSI compliance.[31]

Compiler support

edit

List of compilers supporting ANSI C:

See also

edit

References

edit
  1. ^ Brad Kelechava (2025-08-14). "The Origin of ANSI C and ISO C". Retrieved 2025-08-14.
  2. ^ Richard Hale Shaw (13 September 1988). "Standard C: The ANSI Draft Grows Up". PC Magazine. Vol.?7, no.?15. pp.?116–117. Retrieved 15 November 2022.
  3. ^ "Standards - Using the GNU Compiler Collection (GCC)". Retrieved 2025-08-14.
  4. ^ "INCITS/ISO/IEC 9899". www.techstreet.com. Retrieved 2025-08-14.
  5. ^ "ISO/IEC 9899:1990 - Programming Languages -- C". Retrieved 2025-08-14.
  6. ^ Clive D.W. Feather (2025-08-14). "A brief description of Normative Addendum 1".
  7. ^ "ISO/IEC 9899:1990/Amd 1:1995". International Organization for Standardization. 2025-08-14.
  8. ^ "ISO/IEC 9899:1990/Cor 1:1994". ISO. Retrieved 2025-08-14.
  9. ^ "ISO/IEC 9899:1990/Cor 2:1996". ISO. Retrieved 2025-08-14.
  10. ^ "ISO/IEC 9899:1999". ISO. Retrieved 2025-08-14.
  11. ^ "INCITS/ISO/IEC 9899-2012". ANSI.
  12. ^ "ISO/IEC 9899:1999 - Programming Languages -- C". Retrieved 2025-08-14.
  13. ^ "ISO/IEC 9899:2011/Cor 1:2012". International Organization for Standardization.
  14. ^ "ISO/IEC 9899:2018 - Information technology -- Programming languages -- C". www.iso.org.
  15. ^ "The Standard - C". www.iso-9899.info.
  16. ^ "ISO/IEC 9899:2024 - Information technology — Programming languages — C".
  17. ^ "ISO/IEC TR 19769:2004". International Organization for Standardization.
  18. ^ "ISO/IEC TR 24731-1:2007". International Organization for Standardization.
  19. ^ "ISO/IEC TR 18037:2008". International Organization for Standardization.
  20. ^ "ISO/IEC TR 24732:2009". International Organization for Standardization.
  21. ^ "ISO/IEC TR 24747:2009". International Organization for Standardization.
  22. ^ "ISO/IEC TR 24731-2:2010". International Organization for Standardization.
  23. ^ "ISO/IEC TS 17961:2013". International Organization for Standardization.
  24. ^ "ISO/IEC TS 18661-1:2014". International Organization for Standardization.
  25. ^ "ISO/IEC TS 18661-2:2015". International Organization for Standardization.
  26. ^ "ISO/IEC TS 18661-3:2015". International Organization for Standardization.
  27. ^ "ISO/IEC TS 18661-4:2015". International Organization for Standardization.
  28. ^ "Experimental C features". cppreference.com. Retrieved 16 January 2016.
  29. ^ "2 Language Standards Supported by GCC - 2.1 C Language". Using the GNU Compiler Collection (GCC). GCC, the GNU Compiler Collection. Retrieved 2025-08-14.
  30. ^ "Language Compatibility". Clang C Language Family Frontend for LLVM. Retrieved 2025-08-14.
  31. ^ "Standard predefined macro names". www.ibm.com. Retrieved 2025-08-14.
  32. ^ "HP C/ANSI C developer's bundle". Retrieved 2025-08-14.
  33. ^ Support for ISO C11 added to IBM XL C/C++ compilers
  34. ^ TylerMSFT. "Install C11 and C17 support in Visual Studio". learn.microsoft.com. Retrieved 2025-08-14.
  35. ^ "typeof, __typeof__ (C23)". learn.microsoft.com. Retrieved 2025-08-14.
  36. ^ "Developer Community". developercommunity.visualstudio.com. Retrieved 2025-08-14.
  37. ^ link to Pelles C pages

Further reading

edit
  • Schreiner, Axel-Tobias (1993). Object Oriented Programming with ANSI-C. Hanser. ISBN?3-446-17426-5.
edit
守宫是什么动物 威士忌兑什么饮料好喝 玫瑰花茶和什么搭配好 6月29号是什么星座 乳腺挂什么科
左旋肉碱什么时候吃效果好 形容高兴的词语有什么 消渴症是什么病 迈之灵治什么病 玙字五行属什么
尿道口流脓吃什么药 虎头蛇尾是什么生肖 韧带拉伤有什么症状 小姨是什么关系 短效避孕药是什么
什么是平衡力 为什么第一次进不去 水逆是什么意思 肛门痒是什么原因男性 李世民属相是什么生肖
什么是外阴炎hcv8jop6ns2r.cn 非萎缩性胃炎吃什么药hcv9jop4ns9r.cn 腱鞘炎有什么症状hcv9jop6ns5r.cn 仓鼠为什么喜欢跑轮hcv9jop6ns0r.cn 微尘是什么意思hcv7jop9ns1r.cn
乙肝表面抗原250是什么意思hcv8jop8ns9r.cn 莓茶什么人不适合喝hcv9jop6ns5r.cn 李逵代表什么生肖hcv9jop7ns4r.cn 三专是什么hcv9jop1ns0r.cn 瑀字五行属什么hcv9jop3ns8r.cn
ace是什么意思hcv9jop1ns9r.cn 倍感欣慰是什么意思baiqunet.com 放屁臭是什么原因hcv8jop1ns1r.cn 戴玉对身体有什么好处hcv9jop1ns5r.cn 白羊座是什么性格hcv8jop2ns1r.cn
沉住气是什么意思hcv7jop5ns2r.cn 心衰是什么意思cl108k.com tct是检查什么的hcv8jop4ns1r.cn eo什么意思hcv7jop9ns5r.cn 棕色皮鞋配什么颜色裤子cl108k.com
百度