मानकीकरण से पहले सब कुछ आम तौर पर "केएंडआर सी" कहा जाता है, प्रसिद्ध पुस्तक के बाद , डेनिस रिची, सी भाषा के आविष्कारक के साथ, लेखकों में से एक के रूप में। यह 1972-1989 की "सी भाषा" थी।
पहला C मानक 1989 में राष्ट्रीय स्तर पर USA में जारी किया गया था, उनके राष्ट्रीय मानक संस्थान ANSI द्वारा। इस रिलीज़ को C89 या ANSI-C कहा जाता है। 1989-1990 तक यह "सी भाषा" थी।
इसके एक साल बाद, अमेरिकी मानक को अंतरराष्ट्रीय स्तर पर स्वीकार किया गया और आईएसओ (आईएसओ 9899: 1990) द्वारा प्रकाशित किया गया। इस रिलीज़ को C90 कहा जाता है। तकनीकी रूप से, यह C89 / ANSI-C के समान मानक है। औपचारिक रूप से, इसने C89 / ANSI-C को बदल दिया, जिससे वे अप्रचलित हो गए। 1990-1999 से, C90 "सी भाषा" थी।
कृपया ध्यान दें कि 1989 से, ANSI को C भाषा से कोई लेना-देना नहीं है। प्रोग्रामर अभी भी "एएनएसआई सी" के बारे में बोल रहे हैं, आमतौर पर इसका कोई मतलब नहीं है कि इसका क्या मतलब है। आईएसओ आईएसओ 9899 मानक सी के माध्यम से "भाषा" का मालिक है।
1995 में एक मामूली अपडेट जारी किया गया था, जिसे कभी-कभी "C95" कहा जाता था। यह एक बड़ा संशोधन नहीं था, बल्कि औपचारिक रूप से ISO / IEC 9899: 1990 / Amd.1: 1995 नाम का एक तकनीकी संशोधन था। मुख्य परिवर्तन व्यापक चरित्र समर्थन का परिचय था।
1999 में, C मानक एक प्रमुख संशोधन (ISO 9899: 1999) से गुजरा। मानक के इस संस्करण को C99 कहा जाता है। 1999-2011 से, यह "सी भाषा" थी।
2011 में, सी मानक को फिर से बदल दिया गया था (आईएसओ 9899: 2011)। इस संस्करण को C11 कहा जाता है। विभिन्न नई सुविधाएँ जैसे _Generic
, _Static_assert
और थ्रेड सपोर्ट को भाषा में जोड़ा गया। अपडेट में मल्टी-कोर, मल्टी-प्रोसेसिंग और एक्सप्रेशन सीक्वेंसिंग पर बहुत ध्यान दिया गया था। 2011-2017 से, यह "सी भाषा" थी।
2017 में, C11 को संशोधित किया गया था और विभिन्न दोष रिपोर्ट हल किए गए थे। इस मानक को अनौपचारिक रूप से C17 कहा जाता है और इसे ISO 9899: 2018 के रूप में जारी किया गया था। इसमें कोई नई सुविधाएँ नहीं हैं, बस सुधार हैं। यह C भाषा का वर्तमान संस्करण है।
"C99 सख्त" संभावना एक संकलक सेटिंग को संदर्भित करता है जो अक्षर द्वारा मानक का पालन करने के लिए एक संकलक को मजबूर करता है। सी मानक में कार्यान्वयन के अनुरूप एक शब्द है । अनिवार्य रूप से इसका मतलब है: "यह संकलक वास्तव में सी भाषा को सही ढंग से लागू करता है"। सी भाषा को सही ढंग से लागू करने वाले कार्यक्रमों को औपचारिक रूप से कड़ाई से अनुरूप कार्यक्रम कहा जाता है ।
"जीएनयू सी" का अर्थ दो चीजें हो सकता है। या तो सी कंपाइलर ही जो कि GNU कंपाइलर कलेक्शन (GCC) के हिस्से के रूप में आता है। या यह गैर-मानक डिफ़ॉल्ट सेटअप का मतलब हो सकता है जो जीसीसी सी कंपाइलर का उपयोग करता है। यदि आप संकलन करते हैं gcc program.c
तो आप C मानक के अनुसार संकलन नहीं करते हैं, बल्कि एक गैर-मानक GNU सेटअप है, जिसे "GNU C" के रूप में संदर्भित किया जा सकता है। उदाहरण के लिए, पूरे लिनक्स कर्नेल को गैर-मानक GNU C में बनाया गया है, और मानक C में नहीं।
यदि आप अपने कार्यक्रमों को सी मानक के अनुसार संकलित करना चाहते हैं, तो आपको टाइप करना चाहिए gcc -std=c99 -pedantic-errors
। यदि आपका GCC संस्करण इसका समर्थन करता है तो c99 को c11 से बदलें।