C23 (C मानक संशोधन): Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|C programming language standard, future revision}} {{C language revisions}} C23 उस चीज़ का अनौपचारिक नाम है...")
 
No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 2: Line 2:
{{C language revisions}}
{{C language revisions}}


C23 उस चीज़ का अनौपचारिक नाम है जो संभवतः ISO/IEC 9899:2024 बन जाएगा, C (प्रोग्रामिंग भाषा) के लिए अगला [[खुला मानक]], जो [[C17 (C मानक संशोधन)]] (मानक ISO/IEC 9899:2018) का स्थान लेगा।<ref name="HistoryOfC">{{cite web |title=सी का इतिहास|url=https://en.cppreference.com/w/c/language/history |website=cppreference.com  |archive-url=https://web.archive.org/web/20221019191546/https://en.cppreference.com/w/c/language/history |archive-date=October 19, 2022 |date=2022-06-27 |url-status=live}}</ref> इसे 2016 में अनौपचारिक रूप से C2x के रूप में शुरू किया गया था,<ref name="C2xCharter">{{cite web |title=WG14-N2086 : C2x Charter |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2086.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221222213708/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2086.htm |archive-date=December 22, 2022 |date=2016-09-20 |url-status=live}}</ref> और 2024 में प्रकाशित होने की उम्मीद है।<ref name="N3132">{{cite web |title=WG14-N3132 : Revised C23 Schedule |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3132.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20230609204739/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3132.pdf |archive-date=June 9, 2023 |date=2023-06-04 |url-status=live}}</ref> C23 का सबसे हालिया सार्वजनिक रूप से उपलब्ध कार्यशील ड्राफ्ट 1 अप्रैल, 2023 को जारी किया गया था।<ref name="N3096"/> C2x ड्राफ्ट के लिए पहली WG14 बैठक अक्टूबर 2019 में आयोजित की गई थी,<ref name="N2437">{{cite web |title=WG14-N2437 : Agenda for October 2019 |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2437.htm |website=open-std.org |archive-url=https://web.archive.org/web/20210305073426/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2437.htm |archive-date=March 5, 2021 |date=2019-10-21 |url-status=live}}</ref> 2020 में COVID-19 महामारी के कारण वर्चुअल रिमोट बैठकें आयोजित की गईं, फिर 2023 तक विभिन्न टेलीकांफ्रेंस बैठकें होती रहीं।
C23 उस चीज़ का अनौपचारिक नाम है जो संभवतः ISO/IEC 9899:2024 बन जाएगा, C (प्रोग्रामिंग भाषा) के लिए नेक्स्ट [[खुला मानक|स्टैण्डर्ड]], जो [[C17 (C मानक संशोधन)|C17]] ([[C17 (C मानक संशोधन)|स्टैण्डर्ड]] ISO/IEC 9899:2018) का स्थान लेगा।<ref name="HistoryOfC">{{cite web |title=सी का इतिहास|url=https://en.cppreference.com/w/c/language/history |website=cppreference.com  |archive-url=https://web.archive.org/web/20221019191546/https://en.cppreference.com/w/c/language/history |archive-date=October 19, 2022 |date=2022-06-27 |url-status=live}}</ref> इसे 2016 में अनौपचारिक रूप से C2x के रूप में प्रारम्भ किया गया था,<ref name="C2xCharter">{{cite web |title=WG14-N2086 : C2x Charter |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2086.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221222213708/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2086.htm |archive-date=December 22, 2022 |date=2016-09-20 |url-status=live}}</ref> और 2024 में प्रकाशित होने की उम्मीद है।<ref name="N3132">{{cite web |title=WG14-N3132 : Revised C23 Schedule |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3132.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20230609204739/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3132.pdf |archive-date=June 9, 2023 |date=2023-06-04 |url-status=live}}</ref> C23 का सबसे लेटेस्ट सार्वजनिक रूप से उपलब्ध कार्यशील ड्राफ्ट 1 अप्रैल, 2023 को प्रकाशित किया गया था।<ref name="N3096"/> C2x ड्राफ्ट के लिए पहली WG14 बैठक अक्टूबर 2019 में आयोजित की गई थी,<ref name="N2437">{{cite web |title=WG14-N2437 : Agenda for October 2019 |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2437.htm |website=open-std.org |archive-url=https://web.archive.org/web/20210305073426/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2437.htm |archive-date=March 5, 2021 |date=2019-10-21 |url-status=live}}</ref> 2020 में कोविड-19 महामारी के कारण वर्चुअल रिमोट बैठकें आयोजित की गईं, फिर 2023 तक विभिन्न टेलीकांफ्रेंस बैठकें होती रहीं।  


==सुविधाएँ==
==फीचर ==
C23 के नवीनतम कामकाजी मसौदे में एकीकृत परिवर्तन नीचे सूचीबद्ध हैं।<ref name="N3096">{{cite web |title=WG14-N3096 : Draft for ISO/IEC 9899:2023 |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20230402172459/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf |archive-date=April 2, 2023 |date=April 1, 2023 |url-status=live}}</ref>
C23 के नवीनतम वर्किंग ड्राफ्ट में इंटीग्रेटेड परिवर्तन नीचे सूचीबद्ध हैं।<ref name="N3096">{{cite web |title=WG14-N3096 : Draft for ISO/IEC 9899:2023 |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20230402172459/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf |archive-date=April 2, 2023 |date=April 1, 2023 |url-status=live}}</ref>


=== स्टैण्डर्ड लाइब्रेरी ===


===मानक पुस्तकालय===
====नये फंक्शन ====
* सेंसिटिव डेटा को मिटाने के लिए  <code><[[string.h]]></code> में <code>memset_explicit()</code> फ़ंक्शन जोड़ें, जहाँ अनुकूलन की केयर किए बिना मेमोरी स्टोर सदैव  किया जाना चाहिए।<ref name="N2897">{{cite web |title=WG14-N2897 : memset_explicit() |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2897.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221025074215/https://open-std.org/jtc1/sc22/wg14/www/docs/n2897.htm |archive-date=October 25, 2022 |date=2021-12-27 |url-status=live}}</ref>
*स्ट्रिंग्स को कुशलतापूर्वक संयोजित करने के लिए <code><string.h></code> में<code>[[memccpy]]()</code> फ़ंक्शन जोड़ें - [[POSIX]]  और SVID C एक्सटेंशन के समान।<ref name="N2349">{{cite web |title=WG14-N2349 : Toward more efficient string copying and concatenation |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2349.htm |website=open-std.org |archive-url=https://web.archive.org/web/20220930092258/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2349.htm |archive-date=September 30, 2022 |date=2019-03-18 |url-status=live}}</ref>
*स्ट्रिंग की एक प्रति आवंटित करने के लिए <code><string.h></code> में <code>strndup()</code> और<code>[[strdup]]()</code> फ़ंक्शन जोड़ें - POSIX और SVID C एक्सटेंशन के समान।<ref name="N2353">{{cite web |title=WG14-N2353 : strdup() and strndup() |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2353.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224063709/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2353.htm |archive-date=December 24, 2022 |date=2019-03-18 |url-status=live}}</ref>
*पॉइंटर के बाइट संरेखण को निर्धारित करने के लिए <code><[[stdlib.h]]></code> में <code>memalignment()</code> फ़ंक्शन जोड़ें।<ref name="N2974">{{cite web |title=WG14-N2974 : Queryable pointer alignment |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2974.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221013182240/https://www.open-std.org/jtc1/sc22/WG14/www/docs/n2974.pdf |archive-date=October 13, 2022 |date=2022-04-15 |url-status=live}}</ref>
*कई पूर्णांक प्रकारों की जांच करने के लिए नए हेडर <code><[[stdbit.h]]></code> में बिट उपयोगिता फ़ंक्शंस / मैक्रोज़ / प्रकार जोड़ें। लीगेसी कोड और तृतीय पक्ष लाइब्रेरीज़ के साथ टकराव को कम करने के लिए सभी <code>stdc</code> से प्रारंभ होते हैं।<ref name="N3022">{{cite web |title=WG14-N3022 : Modern Bit Utilities |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3022.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224194734/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3022.htm |archive-date=December 24, 2022 |date=2022-07-06 |url-status=live}}</ref>
** निम्नलिखित में, पाँच फ़ंक्शन नामों के लिए <code>*</code> को  <code>uc</code>, <code>us</code>, <code>ui</code>, <code>ul</code>, <code>ull</code>से बदलें, या टाइप-जेनेरिक मैक्रो के लिए रिक्त स्थान दें।<ref name="N3022" />
**मान में 1 या 0 बिट्स की संख्या गिनने के लिए <code>stdc_count_ones*()</code> और <code>stdc_count_zeros*()</code> जोड़े।<ref name="N3022" />
**मूल्य में अग्रणी 1 या 0 बिट्स की गणना करने के लिए <code>stdc_leading_ones*()</code> और <code>stdc_leading_zeros*()</code> जोड़।<ref name="N3022" />
**मान में 1 या 0 बिट्स की गणना करने के लिए <code>stdc_trailing_ones*()</code> और <code>stdc_trailing_zeros*()</code> जोड़े।<ref name="N3022" />
**1 या 0 मान के साथ पहला अग्रणी बिट खोजने के लिए  <code>stdc_first_leading_one*()</code> और <code>stdc_first_leading_zero*()</code> जोड़े ।<ref name="N3022" />
**1 या 0 मान वाले पहले अनुगामी बिट को खोजने के लिए <code>stdc_first_trailing_one*()</code> और <code>stdc_first_trailing_zero*()</code> जोड़े।<ref name="N3022" />
**यह निर्धारित करने के लिए <code>stdc_has_single_bit*()</code> जोड़ें कि क्या मान 2 की सटीक शक्ति है (केवल 1 बिट होने पर ही सही लौटें)।।<ref name="N3022" />
**2 की सबसे बड़ी अभिन्न शक्ति निर्धारित करने के लिए <code>stdc_bit_floor*()</code> जोड़ें जो मान से अधिक न हो।<ref name="N3022" />
**2 की सबसे छोटी अभिन्न शक्ति निर्धारित करने के लिए <code>stdc_bit_ceil*()</code> जोड़ें जो मान से कम न हो है।<ref name="N3022" />
**किसी मान को दर्शाने के लिए बिट्स की संख्या निर्धारित करने के लिए <code>stdc_bit_width*()</code> जोड़े।<ref name="N3022" />
**समय संरचना को कैलेंडर समय मान में बदलने के लिए <code>timegm()</code> में  <code><[[time.h]]></code> - [[glibc]] और [[musl]] लाइब्रेरीज़ में फ़ंक्शन के समान।<ref name="N2833">{{cite web |title=WG14-N2833 : Add timegm() as non-optional part of time.h |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2833.htm |website=open-std.org |archive-url=https://web.archive.org/web/20211201062452/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2833.htm |archive-date=December 1, 2021 |date=2021-10-07 |url-status=live}}</ref>


====नये कार्य====
==== एक्सिस्टिंग फंक्शन ====
* जोड़ना <code>memset_explicit()</code> में कार्य करें <code><[[string.h]]></code> संवेदनशील डेटा को मिटाने के लिए, जहां अनुकूलन की परवाह किए बिना मेमोरी स्टोर हमेशा किया जाना चाहिए।<ref name="N2897">{{cite web |title=WG14-N2897 : memset_explicit() |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2897.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221025074215/https://open-std.org/jtc1/sc22/wg14/www/docs/n2897.htm |archive-date=October 25, 2022 |date=2021-12-27 |url-status=live}}</ref>
*<code>printf()</code> फ़ंक्शन परिवार में <code>%b</code> बाइनरी रूपांतरण विनिर्देशक जोड़ें, <code>0B</code> के साथ गैर-शून्य मान जोड़ें ,<code>%x</code> कैसे काम करता है। वे कार्यान्वयन जो पहले %B को अपने स्वयं के एक्सटेंशन के रूप में उपयोग नहीं करते थे, उन्हें <code>0b</code> के साथ गैर-शून्य मानों को लागू करने और जोड़ने के लिए प्रोत्साहित किया जाता है, जैसे कि <code>%X</code> कैसे काम करता है।<ref name="N2630">{{cite web |title=WG14-N2630 : formatted input/output of binary integer numbers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2630.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221214154315/https://open-std.org/JTC1/SC22/WG14/www/docs/n2630.pdf |archive-date=December 14, 2022 |date=2021-01-01 |url-status=live}}</ref>
* जोड़ना <code>[[memccpy]]()</code> में कार्य करें <code><string.h></code> स्ट्रिंग्स को कुशलतापूर्वक संयोजित करने के लिए - [[POSIX]] और [[सिस्टम V इंटरफ़ेस परिभाषा]] C एक्सटेंशन के समान।<ref name="N2349">{{cite web |title=WG14-N2349 : Toward more efficient string copying and concatenation |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2349.htm |website=open-std.org |archive-url=https://web.archive.org/web/20220930092258/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2349.htm |archive-date=September 30, 2022 |date=2019-03-18 |url-status=live}}</ref>
*<code>scanf()</code> फ़ंक्शन फ़ैमिली में <code>%b</code> बाइनरी रूपांतरण विनिर्देशक जोड़ें।<ref name="N2630" />
* जोड़ना <code>[[strdup]]()</code> और <code>strndup()</code> में कार्य करता है <code><string.h></code> एक स्ट्रिंग की एक प्रति आवंटित करने के लिए - POSIX और सिस्टम V इंटरफ़ेस डेफिनिशन C एक्सटेंशन के समान।<ref name="N2353">{{cite web |title=WG14-N2353 : strdup() and strndup() |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2353.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224063709/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2353.htm |archive-date=December 24, 2022 |date=2019-03-18 |url-status=live}}</ref>
*<code>strtol()</code>और <code>wcstol()</code> फ़ंक्शन परिवारों में<code>0b</code> और <code>0B</code> बाइनरी रूपांतरण समर्थन जोड़ें।<ref name="N2630" />
* जोड़ना <code>memalignment()</code> में कार्य करें <code><[[stdlib.h]]></code> किसी पॉइंटर का बाइट संरेखण निर्धारित करने के लिए।<ref name="N2974">{{cite web |title=WG14-N2974 : Queryable pointer alignment |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2974.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221013182240/https://www.open-std.org/jtc1/sc22/WG14/www/docs/n2974.pdf |archive-date=October 13, 2022 |date=2022-04-15 |url-status=live}}</ref>
*फ़ंक्शन बनाएं <code>[[bsearch]]()</code>, <code>[[bsearch|bsearch_s]]()</code>, <code>[[memchr]]()</code>, <code>[[strchr]]()</code>, <code>[[strpbrk]]()</code>, <code>[[strrchr]]()</code>, <code>[[strstr]]()</code>, और उनके व्यापक समकक्ष <code>[[wmemchr]]()</code>, <code>[[wcschr]]()</code>, <code>[[wcspbrk]]()</code>, <code>[[wcsrchr]]()</code>, <code>[[wcsstr]]()</code> एक स्थिर स्थिर वस्तु वापस आ गई है यदि कोई उन्हें पास नहीं किया गया था।<ref name="N3020">{{cite web |title=WG14-N3020 : Qualifier-preserving standard library functions |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3020.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221013190826/https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3020.pdf |archive-date=October 13, 2022 |date=2022-06-13 |url-status=live}}</ref>
* नए हेडर में बिट यूटिलिटी फ़ंक्शंस / मैक्रोज़ / प्रकार जोड़ें <code><[[stdbit.h]]></code> कई पूर्णांक प्रकारों की जांच करने के लिए। सभी की शुरुआत इसी से होती है <code>stdc_</code> लीगेसी कोड और तृतीय पक्ष लाइब्रेरीज़ के साथ टकराव को कम करने के लिए।<ref name="N3022">{{cite web |title=WG14-N3022 : Modern Bit Utilities |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3022.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224194734/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3022.htm |archive-date=December 24, 2022 |date=2022-07-06 |url-status=live}}</ref>
** निम्नलिखित में प्रतिस्थापित करें <code>*</code> साथ <code>uc</code>, <code>us</code>, <code>ui</code>, <code>ul</code>, <code>ull</code> पाँच फ़ंक्शन नामों के लिए, या टाइप-जेनेरिक मैक्रो के लिए रिक्त।<ref name="N3022"/>** जोड़ना <code>stdc_count_ones*()</code> और <code>stdc_count_zeros*()</code> मान में 1 या 0 बिट्स की संख्या गिनने के लिए।<ref name="N3022"/>** जोड़ना <code>stdc_leading_ones*()</code> और <code>stdc_leading_zeros*()</code> मूल्य में अग्रणी 1 या 0 बिट्स की गणना करने के लिए।<ref name="N3022"/>** जोड़ना <code>stdc_trailing_ones*()</code> और <code>stdc_trailing_zeros*()</code> मान में 1 या 0 बिट के पीछे की गिनती करने के लिए।<ref name="N3022"/>** जोड़ना <code>stdc_first_leading_one*()</code> और <code>stdc_first_leading_zero*()</code> 1 या 0 मान वाला पहला अग्रणी बिट ढूँढ़ने के लिए।<ref name="N3022"/>** जोड़ना <code>stdc_first_trailing_one*()</code> और <code>stdc_first_trailing_zero*()</code> 1 या 0 मान के साथ पहला अनुगामी बिट ढूँढ़ने के लिए।<ref name="N3022"/>** जोड़ना <code>stdc_has_single_bit*()</code> यह निर्धारित करने के लिए कि क्या मान 2 की सटीक शक्ति है (यदि केवल 1 बिट है तो सही लौटें)।<ref name="N3022"/>** जोड़ना <code>stdc_bit_floor*()</code> 2 की सबसे बड़ी अभिन्न शक्ति निर्धारित करने के लिए जो मूल्य से अधिक नहीं है।<ref name="N3022"/>** जोड़ना <code>stdc_bit_ceil*()</code> 2 की सबसे छोटी अभिन्न शक्ति निर्धारित करने के लिए जो मूल्य से कम नहीं है।<ref name="N3022"/>** जोड़ना <code>stdc_bit_width*()</code> किसी मान को दर्शाने के लिए बिट्स की संख्या निर्धारित करना।<ref name="N3022"/>* जोड़ना <code>timegm()</code> में कार्य करें <code><[[time.h]]></code> समय संरचना को कैलेंडर समय मान में परिवर्तित करने के लिए - [[glibc]] और [[musl]] पुस्तकालयों में कार्य के समान।<ref name="N2833">{{cite web |title=WG14-N2833 : Add timegm() as non-optional part of time.h |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2833.htm |website=open-std.org |archive-url=https://web.archive.org/web/20211201062452/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2833.htm |archive-date=December 1, 2021 |date=2021-10-07 |url-status=live}}</ref>


=== प्रीप्रोसेसर ===
* ऐड {{C-lang|#elifdef}} और {{C-lang|#elifndef}} [[प्रक्रमण करने से पहले के निर्देश]]<ref name="N2645">{{cite web |title=WG14-N2645 : Add support for preprocessing directives #elifdef and #elifndef |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2645.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221128133337/https://open-std.org/JTC1/SC22/WG14/www/docs/n2645.pdf |archive-date=November 28, 2022 |date=2020-01-25 |url-status=live}}</ref> मूलतः {{C-lang|#elif defined}} और {{C-lang|#elif !defined}}.समकक्ष हैं।  दोनों निर्देश [[C++23]] मानक और [[जीएनयू कंपाइलर संग्रह]] 12 कंपाइलर में भी जोड़े गए थे।<ref>{{cite web |title=GCC 12 Adds Support For New #elifdef #elifndef Directives |url=https://www.phoronix.com/news/GCC-12-elifdef-elifndef |website=phoronix |archive-url=https://web.archive.org/web/20221227050002/https://www.phoronix.com/news/GCC-12-elifdef-elifndef |archive-date=December 27, 2022 |date=May 12, 2021 |url-status=live}}</ref>
* बाइनरी संसाधन समावेशन के लिए {{C-lang|#embed}} निर्देश जोड़े और {{C-lang|__has_embed}} प्रीप्रोसेसर निर्देशों द्वारा संसाधन की उपलब्धता की जाँच करने की अनुमति दे।<ref name="N3017">{{cite web |title=WG14-N3017 : #embed - a scannable, tooling-friendly binary resource inclusion mechanism |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3017.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224045304/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3017.htm |archive-date=December 24, 2022 |date=2022-06-27 |url-status=live}}</ref>
* निदान के लिए  {{C-lang|#warning}} निर्देश जोड़े।<ref name="N2686">{{cite web |title=WG14-N2686 : #warning |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2686.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221128133337/https://open-std.org/JTC1/SC22/WG14/www/docs/n2686.pdf |archive-date=November 28, 2022 |date=2022-07-22 |url-status=live}}</ref>
* प्रीप्रोसेसर निर्देशों द्वारा हेडर की उपलब्धता की जांच करने की अनुमति देने के लिए {{C-lang|__has_include}} जोड़े।<ref name="N2799">{{cite web |title=WG14-N2799 : __has_include for C |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2799.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221224103617/https://open-std.org/JTC1/SC22/WG14/www/docs/n2799.pdf |archive-date=December 24, 2022 |date=2021-08-30 |url-status=live}}</ref>
* {{C-lang|__has_c_attribute}} जोड़ें, जिससे प्रीप्रोसेसर निर्देशों द्वारा किसी विशेषता की उपलब्धता की जाँच की जा सके।<ref name="N2553">{{cite web |title=WG14-N2553 : Querying attribute support |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2553.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221014221314/https://open-std.org/JTC1/SC22/WG14/www/docs/n2553.pdf |archive-date=October 14, 2022 |date=2020-08-04 |url-status=live}}</ref> (नई विशेषता सुविधा के लिए C++ संगतता समूह देखें)
* [[विविध स्थूल|विविध मैक्रोज़]] के लिए {{C-lang|__VA_OPT__}}  कार्यात्मक मैक्रो जो अपने तर्क तक विस्तारित होता है केवल तभी जब एक वैरिएडिक तर्क युक्त मैक्रो को पारित किया गया हो।<ref name="N3033">{{cite web |title=WG14-N3033 : Comma omission and comma deletion |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3033.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221227031727/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3033.htm |archive-date=December 27, 2022 |date=2022-07-20 |url-status=live}}</ref>


====मौजूदा कार्य====
=== प्रकार ===
* जोड़ना <code>%b</code> द्विआधारी रूपांतरण विनिर्देशक <code>printf()</code> फ़ंक्शन परिवार, गैर-शून्य मानों को इसके साथ जोड़ते हुए <code>0b</code>, कैसे के समान <code>%x</code> काम करता है. वे कार्यान्वयन जिनका पहले उपयोग नहीं किया जाता था <code>%B</code> चूंकि उनके स्वयं के विस्तार को गैर-शून्य मानों को लागू करने और जोड़ने के लिए प्रोत्साहित किया जाता है <code>0B</code>, कैसे के समान <code>%X</code> काम करता है.<ref name="N2630">{{cite web |title=WG14-N2630 : formatted input/output of binary integer numbers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2630.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221214154315/https://open-std.org/JTC1/SC22/WG14/www/docs/n2630.pdf |archive-date=December 14, 2022 |date=2021-01-01 |url-status=live}}</ref>
* जोड़ना <code>%b</code> द्विआधारी रूपांतरण विनिर्देशक <code>scanf()</code> कार्य परिवार.<ref name="N2630"/>* जोड़ना <code>0b</code> और <code>0B</code> बाइनरी रूपांतरण समर्थन <code>strtol()</code> और <code>wcstol()</code> कार्य परिवार.<ref name="N2630"/>* फ़ंक्शन बनाएं <code>[[bsearch]]()</code>, <code>[[bsearch|bsearch_s]]()</code>, <code>[[memchr]]()</code>, <code>[[strchr]]()</code>, <code>[[strpbrk]]()</code>, <code>[[strrchr]]()</code>, <code>[[strstr]]()</code>, और उनके व्यापक समकक्ष <code>[[wmemchr]]()</code>, <code>[[wcschr]]()</code>, <code>[[wcspbrk]]()</code>, <code>[[wcsrchr]]()</code>, <code>[[wcsstr]]()</code> यदि कोई उन्हें पास किया गया था तो एक स्थिरांक योग्य वस्तु लौटाएँ।<ref name="N3020">{{cite web |title=WG14-N3020 : Qualifier-preserving standard library functions |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3020.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221013190826/https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3020.pdf |archive-date=October 13, 2022 |date=2022-06-13 |url-status=live}}</ref>
 
 
===प्रीप्रोसेसर===
* जोड़ना {{C-lang|#elifdef}} और {{C-lang|#elifndef}} [[प्रक्रमण करने से पहले के निर्देश]]<ref name="N2645">{{cite web |title=WG14-N2645 : Add support for preprocessing directives #elifdef and #elifndef |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2645.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221128133337/https://open-std.org/JTC1/SC22/WG14/www/docs/n2645.pdf |archive-date=November 28, 2022 |date=2020-01-25 |url-status=live}}</ref> मूलतः समकक्ष हैं {{C-lang|#elif defined}} और {{C-lang|#elif !defined}}. दोनों निर्देश [[C++23]] मानक और [[जीएनयू कंपाइलर संग्रह]] 12 कंपाइलर में भी जोड़े गए थे।<ref>{{cite web |title=GCC 12 Adds Support For New #elifdef #elifndef Directives |url=https://www.phoronix.com/news/GCC-12-elifdef-elifndef |website=phoronix |archive-url=https://web.archive.org/web/20221227050002/https://www.phoronix.com/news/GCC-12-elifdef-elifndef |archive-date=December 27, 2022 |date=May 12, 2021 |url-status=live}}</ref>
* जोड़ना {{C-lang|#embed}} बाइनरी संसाधन समावेशन के लिए निर्देश और {{C-lang|__has_embed}} प्रीप्रोसेसर निर्देशों द्वारा संसाधन की उपलब्धता की जाँच करने की अनुमति देना।<ref name="N3017">{{cite web |title=WG14-N3017 : #embed - a scannable, tooling-friendly binary resource inclusion mechanism |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3017.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224045304/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3017.htm |archive-date=December 24, 2022 |date=2022-06-27 |url-status=live}}</ref>
* जोड़ना {{C-lang|#warning}} निदान के लिए निर्देश।<ref name="N2686">{{cite web |title=WG14-N2686 : #warning |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2686.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221128133337/https://open-std.org/JTC1/SC22/WG14/www/docs/n2686.pdf |archive-date=November 28, 2022 |date=2022-07-22 |url-status=live}}</ref>
* जोड़ना {{C-lang|__has_include}} प्रीप्रोसेसर निर्देशों द्वारा हेडर की उपलब्धता की जांच करने की अनुमति देना।<ref name="N2799">{{cite web |title=WG14-N2799 : __has_include for C |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2799.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221224103617/https://open-std.org/JTC1/SC22/WG14/www/docs/n2799.pdf |archive-date=December 24, 2022 |date=2021-08-30 |url-status=live}}</ref>
* जोड़ना {{C-lang|__has_c_attribute}} प्रीप्रोसेसर निर्देशों द्वारा किसी विशेषता की उपलब्धता की जाँच करने की अनुमति देना।<ref name="N2553">{{cite web |title=WG14-N2553 : Querying attribute support |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2553.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221014221314/https://open-std.org/JTC1/SC22/WG14/www/docs/n2553.pdf |archive-date=October 14, 2022 |date=2020-08-04 |url-status=live}}</ref> (नई विशेषता सुविधा के लिए C++ संगतता समूह देखें)
* जोड़ना {{C-lang|__VA_OPT__}} [[विविध स्थूल]] के लिए कार्यात्मक मैक्रो जो अपने तर्क तक विस्तारित होता है केवल तभी जब एक वैरिएडिक तर्क युक्त मैक्रो को पारित किया गया हो।<ref name="N3033">{{cite web |title=WG14-N3033 : Comma omission and comma deletion |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3033.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221227031727/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3033.htm |archive-date=December 27, 2022 |date=2022-07-20 |url-status=live}}</ref>
 
 
===प्रकार===
* nullptr_t जोड़ें|{{Code|nullptr_t|c}}, एक शून्य सूचक प्रकार।<ref name="N3042"/>* जोड़ना {{C-lang|_BitInt(N)}} और {{C-lang|unsigned _BitInt(N)}} बिट-सटीक पूर्णांकों के लिए प्रकार। जोड़ना {{C-lang|BITINT_MAXWIDTH}} अधिकतम बिट चौड़ाई के लिए मैक्रो।<ref name="N2763">{{cite web |title=WG14-N2763 : Adding a Fundamental Type for N-bit integers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2763.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221227055250/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2763.pdf |archive-date=December 27, 2022 |date=2021-06-21 |url-status=live}}</ref><ref name="N3035">{{cite web |title=WG14-N3035 : _BitInt Fixes |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3035.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221013182206/https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3035.pdf |archive-date=October 13, 2022 |date=2022-07-21 |url-status=live}}</ref> जोड़ना <code>ckd_add()</code>, <code>ckd_sub()</code>, <code>ckd_mul()</code> जाँचे गए पूर्णांक संचालन के लिए मैक्रोज़।<ref name="N2867">{{cite web |title=WG14-N2867 : Checked N-Bit Integers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2867.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221214154907/https://open-std.org/JTC1/SC22/WG14/www/docs/n2867.pdf |archive-date=December 14, 2022 |date=2021-11-28 |url-status=live}}</ref>
* nullptr_t जोड़ें|{{Code|nullptr_t|c}}, एक शून्य सूचक प्रकार।<ref name="N3042"/>* जोड़ना {{C-lang|_BitInt(N)}} और {{C-lang|unsigned _BitInt(N)}} बिट-सटीक पूर्णांकों के लिए प्रकार। जोड़ना {{C-lang|BITINT_MAXWIDTH}} अधिकतम बिट चौड़ाई के लिए मैक्रो।<ref name="N2763">{{cite web |title=WG14-N2763 : Adding a Fundamental Type for N-bit integers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2763.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221227055250/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2763.pdf |archive-date=December 27, 2022 |date=2021-06-21 |url-status=live}}</ref><ref name="N3035">{{cite web |title=WG14-N3035 : _BitInt Fixes |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3035.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221013182206/https://www.open-std.org/jtc1/sc22/WG14/www/docs/n3035.pdf |archive-date=October 13, 2022 |date=2022-07-21 |url-status=live}}</ref> जोड़ना <code>ckd_add()</code>, <code>ckd_sub()</code>, <code>ckd_mul()</code> जाँचे गए पूर्णांक संचालन के लिए मैक्रोज़।<ref name="N2867">{{cite web |title=WG14-N2867 : Checked N-Bit Integers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2867.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221214154907/https://open-std.org/JTC1/SC22/WG14/www/docs/n2867.pdf |archive-date=December 14, 2022 |date=2021-11-28 |url-status=live}}</ref>
* वेरिएबल-संशोधित प्रकार (लेकिन वेरिएबल-लंबाई सरणी नहीं जो स्टैक पर स्वचालित_वेरिएबल आवंटित होते हैं) एक अनिवार्य सुविधा बन जाते हैं।<ref name="N2778">{{cite web |title=WG14-N2778 : Variably-Modified Types |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2778.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221222053411/https://open-std.org/jtc1/sc22/wg14/www/docs/n2778.pdf |archive-date=December 22, 2022 |date=2021-07-11 |url-status=live}}</ref>
* वेरिएबल-संशोधित प्रकार (लेकिन वेरिएबल-लंबाई सरणी नहीं जो स्टैक पर स्वचालित_वेरिएबल आवंटित होते हैं) एक अनिवार्य सुविधा बन जाते हैं।<ref name="N2778">{{cite web |title=WG14-N2778 : Variably-Modified Types |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2778.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221222053411/https://open-std.org/jtc1/sc22/wg14/www/docs/n2778.pdf |archive-date=December 22, 2022 |date=2021-07-11 |url-status=live}}</ref>
Line 41: Line 49:
* एक ही टैग के साथ संगत प्रकार की पुनर्घोषणा की अनुमति देने के लिए संरचना, संघ और प्रगणित प्रकारों के लिए संगतता नियमों को बदल दिया गया था।<ref name="N3037">{{cite web |title=WG14-N3037 : Improved Rules for Tag Compatibility (updates N3032) |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3037.pdf}}</ref>
* एक ही टैग के साथ संगत प्रकार की पुनर्घोषणा की अनुमति देने के लिए संरचना, संघ और प्रगणित प्रकारों के लिए संगतता नियमों को बदल दिया गया था।<ref name="N3037">{{cite web |title=WG14-N3037 : Improved Rules for Tag Compatibility (updates N3032) |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3037.pdf}}</ref>


 
=== स्थिरांक ===
===स्थिरांक===
*nullptr जोड़ें|{{Code|nullptr|c}} के लिए स्थिरांक <code>nullptr_t</code> प्रकार।<ref name="N3042">{{cite web |title=WR14-N3042 : Introduce the nullptr constant |url=https://open-std.org/JTC1/SC22/WG14/www/docs/n3042.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224043228/https://open-std.org/JTC1/SC22/WG14/www/docs/n3042.htm |archive-date=December 24, 2022 |date=2022-07-22 |url-status=live}}</ref>
*nullptr जोड़ें|{{Code|nullptr|c}} के लिए स्थिरांक <code>nullptr_t</code> प्रकार।<ref name="N3042">{{cite web |title=WR14-N3042 : Introduce the nullptr constant |url=https://open-std.org/JTC1/SC22/WG14/www/docs/n3042.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221224043228/https://open-std.org/JTC1/SC22/WG14/www/docs/n3042.htm |archive-date=December 24, 2022 |date=2022-07-22 |url-status=live}}</ref>
* जोड़ना <code>wb</code> और <code>uwb</code> के लिए पूर्णांक शाब्दिक प्रत्यय {{C-lang|_BitInt(N)}} और {{C-lang|unsigned _BitInt(N)}} प्रकार,<ref name="N2775">{{cite web |title=WG14-N2775 : Literal suffixes for bit-precise integers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2775.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221227014728/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2775.pdf |archive-date=December 27, 2022 |date=2021-07-13 |url-status=live}}</ref> जैसे कि {{C-lang|6uwb}} एक उपज देता है <code>unsigned _BitInt(3)</code>, और {{C-lang|-6wb}} एक उपज देता है <code>signed _BitInt(4)</code> जिसमें तीन वैल्यू बिट और एक साइन बिट है।
* जोड़ना <code>wb</code> और <code>uwb</code> के लिए पूर्णांक शाब्दिक प्रत्यय {{C-lang|_BitInt(N)}} और {{C-lang|unsigned _BitInt(N)}} प्रकार,<ref name="N2775">{{cite web |title=WG14-N2775 : Literal suffixes for bit-precise integers |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2775.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221227014728/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2775.pdf |archive-date=December 27, 2022 |date=2021-07-13 |url-status=live}}</ref> जैसे कि {{C-lang|6uwb}} एक उपज देता है <code>unsigned _BitInt(3)</code>, और {{C-lang|-6wb}} एक उपज देता है <code>signed _BitInt(4)</code> जिसमें तीन वैल्यू बिट और एक साइन बिट है।
Line 50: Line 57:
* अनुमति देना {{C-lang|enum}} में उन मानों को संग्रहीत करने के लिए कोई निश्चित अंतर्निहित प्रकार नहीं है जिन्हें प्रस्तुत नहीं किया जा सकता {{C-lang|int}}.<ref name="N3029">{{cite web |title=WG14-N3029 : Improved Normal Enumerations |url=https://open-std.org/JTC1/SC22/WG14/www/docs/n3029.htm |website=open-std.org |archive-url=https://web.archive.org/web/20230129180341/https://open-std.org/JTC1/SC22/WG14/www/docs/n3029.htm |archive-date=January 29, 2023 |date=2022-07-19 |url-status=live}}</ref>
* अनुमति देना {{C-lang|enum}} में उन मानों को संग्रहीत करने के लिए कोई निश्चित अंतर्निहित प्रकार नहीं है जिन्हें प्रस्तुत नहीं किया जा सकता {{C-lang|int}}.<ref name="N3029">{{cite web |title=WG14-N3029 : Improved Normal Enumerations |url=https://open-std.org/JTC1/SC22/WG14/www/docs/n3029.htm |website=open-std.org |archive-url=https://web.archive.org/web/20230129180341/https://open-std.org/JTC1/SC22/WG14/www/docs/n3029.htm |archive-date=January 29, 2023 |date=2022-07-19 |url-status=live}}</ref>


 
=== कीवर्ड ===
===कीवर्ड===
* जोड़ना {{C-lang|true}} और {{C-lang|false}} कीवर्ड.<ref name="N2935">{{cite web |title=WG14-N2935 : Make false and true first-class language features |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2935.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221121123457/https://open-std.org/JTC1/SC22/WG14/www/docs/n2935.pdf |archive-date=November 21, 2022 |date=2022-02-15 |url-status=live}}</ref>
* जोड़ना {{C-lang|true}} और {{C-lang|false}} कीवर्ड.<ref name="N2935">{{cite web |title=WG14-N2935 : Make false and true first-class language features |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2935.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221121123457/https://open-std.org/JTC1/SC22/WG14/www/docs/n2935.pdf |archive-date=November 21, 2022 |date=2022-02-15 |url-status=live}}</ref>
* जोड़ना {{C-lang|alignas}}, {{C-lang|alignof}}, {{C-lang|bool}}, {{C-lang|static_assert}}, थ्रेड-स्थानीय भंडारण|{{Code|thread_local|c}} कीवर्ड. पहले से परिभाषित कीवर्ड वैकल्पिक वर्तनी बन जाते हैं: {{C-lang|_Alignas}}, {{C-lang|_Alignof}}, {{C-lang|_Bool}}, {{C-lang|_Static_assert}}, {{C-lang|_Thread_local}}.<ref name="N2934">{{cite web |title=WG14-N2934 : Revise spelling of keywords |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2934.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221224132455/https://open-std.org/JTC1/SC22/WG14/www/docs/n2934.pdf |archive-date=December 24, 2022 |date=2022-02-15 |url-status=live}}</ref>
* जोड़ना {{C-lang|alignas}}, {{C-lang|alignof}}, {{C-lang|bool}}, {{C-lang|static_assert}}, थ्रेड-स्थानीय भंडारण|{{Code|thread_local|c}} कीवर्ड. पहले से परिभाषित कीवर्ड वैकल्पिक वर्तनी बन जाते हैं: {{C-lang|_Alignas}}, {{C-lang|_Alignof}}, {{C-lang|_Bool}}, {{C-lang|_Static_assert}}, {{C-lang|_Thread_local}}.<ref name="N2934">{{cite web |title=WG14-N2934 : Revise spelling of keywords |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2934.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221224132455/https://open-std.org/JTC1/SC22/WG14/www/docs/n2934.pdf |archive-date=December 24, 2022 |date=2022-02-15 |url-status=live}}</ref>
Line 82: Line 88:
* भंडारण वर्ग विनिर्देशकों को मिश्रित शाब्दिक परिभाषा में प्रदर्शित होने की अनुमति दें।<ref name="N3038">{{cite web |title=WG14-N3038 : Introduce storage-class specifiers for compound literals |url=https://open-std.org/JTC1/SC22/WG14/www/docs/n3038.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221126130057/https://open-std.org/JTC1/SC22/WG14/www/docs/n3038.htm |archive-date=November 26, 2022 |date=2022-07-21 |url-status=live}}</ref>
* भंडारण वर्ग विनिर्देशकों को मिश्रित शाब्दिक परिभाषा में प्रदर्शित होने की अनुमति दें।<ref name="N3038">{{cite web |title=WG14-N3038 : Introduce storage-class specifiers for compound literals |url=https://open-std.org/JTC1/SC22/WG14/www/docs/n3038.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221126130057/https://open-std.org/JTC1/SC22/WG14/www/docs/n3038.htm |archive-date=November 26, 2022 |date=2022-07-21 |url-status=live}}</ref>


 
== अप्रचलित सुविधाएँ ==
==अप्रचलित सुविधाएँ==
कुछ पुरानी अप्रचलित सुविधाओं को C23 के कार्यशील मसौदे से या तो हटा दिया गया है या हटा दिया गया है:
कुछ पुरानी अप्रचलित सुविधाओं को C23 के कार्यशील मसौदे से या तो हटा दिया गया है या हटा दिया गया है:
:* डिग्राफ और ट्रिग्राफ हटाएं#सी।<ref name="N2940">{{cite web |title=WG14-N2940 : Removing trigraphs??! |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2940.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221026005747/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2940.pdf |archive-date=October 26, 2022 |date=2022-03-02 |url-status=live}}</ref>
:* डिग्राफ और ट्रिग्राफ हटाएं#सी।<ref name="N2940">{{cite web |title=WG14-N2940 : Removing trigraphs??! |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2940.pdf |website=open-std.org |archive-url=https://web.archive.org/web/20221026005747/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2940.pdf |archive-date=October 26, 2022 |date=2022-03-02 |url-status=live}}</ref>
Line 90: Line 95:
:* {{C-lang|*_HAS_SUBNORM}RM}} मैक्रोज़ में <code><float.h></code> अप्रचलित विशेषताएं हैं.<ref name="N2993">{{cite web |title=WG14-N2993 : Make *_HAS_SUBNORM be obsolescent |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2993.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221205194635/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2993.htm |archive-date=December 5, 2022 |date=2022-06-06 |url-status=live}}</ref>
:* {{C-lang|*_HAS_SUBNORM}RM}} मैक्रोज़ में <code><float.h></code> अप्रचलित विशेषताएं हैं.<ref name="N2993">{{cite web |title=WG14-N2993 : Make *_HAS_SUBNORM be obsolescent |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2993.htm |website=open-std.org |archive-url=https://web.archive.org/web/20221205194635/https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2993.htm |archive-date=December 5, 2022 |date=2022-06-06 |url-status=live}}</ref>


 
== संकलक समर्थन ==
==संकलक समर्थन==
जीएनयू कंपाइलर संग्रह 9,<ref>{{cite web |title=GCC 9 Release Notes |url=https://gcc.gnu.org/gcc-9/changes.html#c |website=GNU Project |archive-url=https://web.archive.org/web/20221227032646/https://gcc.gnu.org/gcc-9/changes.html |archive-date=December 27, 2022 |url-status=live}}</ref> [[बजना]] 9.0,<ref>{{cite web |title=Clang 9.0 - add new language mode for C2x |url=https://github.com/llvm/llvm-project/commit/d06f3917913d2558b771ccc48d838f8cd8993c01 |website=LLVM Project Repository |archive-url=https://web.archive.org/web/20221227032640/https://github.com/llvm/llvm-project/commit/d06f3917913d2558b771ccc48d838f8cd8993c01 |archive-date=December 27, 2022 |date=May 14, 2019 |url-status=live}}</ref> और एलसीसी_(कंपाइलर)#पेलेस_सी 11.00<ref>{{cite web |title=पेल्स सी - 10.00 और 11.00 के बीच बड़े बदलाव|url=http://www.smorgasbordet.com/pellesc/changes_1000_1100.htm |website=smorgasbordet.com |archive-url=https://web.archive.org/web/20221227032644/http://www.smorgasbordet.com/pellesc/changes_1000_1100.htm |archive-date=December 27, 2022 |url-status=live}}</ref> कंपाइलर इस मानक का समर्थन करने के लिए एक प्रयोगात्मक कंपाइलर ध्वज लागू करते हैं।
जीएनयू कंपाइलर संग्रह 9,<ref>{{cite web |title=GCC 9 Release Notes |url=https://gcc.gnu.org/gcc-9/changes.html#c |website=GNU Project |archive-url=https://web.archive.org/web/20221227032646/https://gcc.gnu.org/gcc-9/changes.html |archive-date=December 27, 2022 |url-status=live}}</ref> [[बजना]] 9.0,<ref>{{cite web |title=Clang 9.0 - add new language mode for C2x |url=https://github.com/llvm/llvm-project/commit/d06f3917913d2558b771ccc48d838f8cd8993c01 |website=LLVM Project Repository |archive-url=https://web.archive.org/web/20221227032640/https://github.com/llvm/llvm-project/commit/d06f3917913d2558b771ccc48d838f8cd8993c01 |archive-date=December 27, 2022 |date=May 14, 2019 |url-status=live}}</ref> और एलसीसी_(कंपाइलर)#पेलेस_सी 11.00<ref>{{cite web |title=पेल्स सी - 10.00 और 11.00 के बीच बड़े बदलाव|url=http://www.smorgasbordet.com/pellesc/changes_1000_1100.htm |website=smorgasbordet.com |archive-url=https://web.archive.org/web/20221227032644/http://www.smorgasbordet.com/pellesc/changes_1000_1100.htm |archive-date=December 27, 2022 |url-status=live}}</ref> कंपाइलर इस मानक का समर्थन करने के लिए एक प्रयोगात्मक कंपाइलर ध्वज लागू करते हैं।


Line 114: Line 118:


{{C programming language}}
{{C programming language}}
[[Category: सी (प्रोग्रामिंग भाषा)]] [[Category: प्रोग्रामिंग भाषा मानक]]


[[Category: Machine Translated Page]]
[[Category:Articles with example C code]]
[[Category:Collapse templates]]
[[Category:Created On 24/07/2023]]
[[Category:Created On 24/07/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Portal templates with redlinked portals]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:प्रोग्रामिंग भाषा मानक]]
[[Category:सी (प्रोग्रामिंग भाषा)]]

Latest revision as of 11:12, 18 August 2023

C23 उस चीज़ का अनौपचारिक नाम है जो संभवतः ISO/IEC 9899:2024 बन जाएगा, C (प्रोग्रामिंग भाषा) के लिए नेक्स्ट स्टैण्डर्ड, जो C17 (स्टैण्डर्ड ISO/IEC 9899:2018) का स्थान लेगा।[1] इसे 2016 में अनौपचारिक रूप से C2x के रूप में प्रारम्भ किया गया था,[2] और 2024 में प्रकाशित होने की उम्मीद है।[3] C23 का सबसे लेटेस्ट सार्वजनिक रूप से उपलब्ध कार्यशील ड्राफ्ट 1 अप्रैल, 2023 को प्रकाशित किया गया था।[4] C2x ड्राफ्ट के लिए पहली WG14 बैठक अक्टूबर 2019 में आयोजित की गई थी,[5] 2020 में कोविड-19 महामारी के कारण वर्चुअल रिमोट बैठकें आयोजित की गईं, फिर 2023 तक विभिन्न टेलीकांफ्रेंस बैठकें होती रहीं।

फीचर

C23 के नवीनतम वर्किंग ड्राफ्ट में इंटीग्रेटेड परिवर्तन नीचे सूचीबद्ध हैं।[4]

स्टैण्डर्ड लाइब्रेरी

नये फंक्शन

  • सेंसिटिव डेटा को मिटाने के लिए <string.h> में memset_explicit() फ़ंक्शन जोड़ें, जहाँ अनुकूलन की केयर किए बिना मेमोरी स्टोर सदैव किया जाना चाहिए।[6]
  • स्ट्रिंग्स को कुशलतापूर्वक संयोजित करने के लिए <string.h> मेंmemccpy() फ़ंक्शन जोड़ें - POSIX और SVID C एक्सटेंशन के समान।[7]
  • स्ट्रिंग की एक प्रति आवंटित करने के लिए <string.h> में strndup() औरstrdup() फ़ंक्शन जोड़ें - POSIX और SVID C एक्सटेंशन के समान।[8]
  • पॉइंटर के बाइट संरेखण को निर्धारित करने के लिए <stdlib.h> में memalignment() फ़ंक्शन जोड़ें।[9]
  • कई पूर्णांक प्रकारों की जांच करने के लिए नए हेडर <stdbit.h> में बिट उपयोगिता फ़ंक्शंस / मैक्रोज़ / प्रकार जोड़ें। लीगेसी कोड और तृतीय पक्ष लाइब्रेरीज़ के साथ टकराव को कम करने के लिए सभी stdc से प्रारंभ होते हैं।[10]
    • निम्नलिखित में, पाँच फ़ंक्शन नामों के लिए * को uc, us, ui, ul, ullसे बदलें, या टाइप-जेनेरिक मैक्रो के लिए रिक्त स्थान दें।[10]
    • मान में 1 या 0 बिट्स की संख्या गिनने के लिए stdc_count_ones*() और stdc_count_zeros*() जोड़े।[10]
    • मूल्य में अग्रणी 1 या 0 बिट्स की गणना करने के लिए stdc_leading_ones*() और stdc_leading_zeros*() जोड़।[10]
    • मान में 1 या 0 बिट्स की गणना करने के लिए stdc_trailing_ones*() और stdc_trailing_zeros*() जोड़े।[10]
    • 1 या 0 मान के साथ पहला अग्रणी बिट खोजने के लिए stdc_first_leading_one*() और stdc_first_leading_zero*() जोड़े ।[10]
    • 1 या 0 मान वाले पहले अनुगामी बिट को खोजने के लिए stdc_first_trailing_one*() और stdc_first_trailing_zero*() जोड़े।[10]
    • यह निर्धारित करने के लिए stdc_has_single_bit*() जोड़ें कि क्या मान 2 की सटीक शक्ति है (केवल 1 बिट होने पर ही सही लौटें)।।[10]
    • 2 की सबसे बड़ी अभिन्न शक्ति निर्धारित करने के लिए stdc_bit_floor*() जोड़ें जो मान से अधिक न हो।[10]
    • 2 की सबसे छोटी अभिन्न शक्ति निर्धारित करने के लिए stdc_bit_ceil*() जोड़ें जो मान से कम न हो है।[10]
    • किसी मान को दर्शाने के लिए बिट्स की संख्या निर्धारित करने के लिए stdc_bit_width*() जोड़े।[10]
    • समय संरचना को कैलेंडर समय मान में बदलने के लिए timegm() में <time.h> - glibc और musl लाइब्रेरीज़ में फ़ंक्शन के समान।[11]

एक्सिस्टिंग फंक्शन

  • printf() फ़ंक्शन परिवार में %b बाइनरी रूपांतरण विनिर्देशक जोड़ें, 0B के साथ गैर-शून्य मान जोड़ें ,%x कैसे काम करता है। वे कार्यान्वयन जो पहले %B को अपने स्वयं के एक्सटेंशन के रूप में उपयोग नहीं करते थे, उन्हें 0b के साथ गैर-शून्य मानों को लागू करने और जोड़ने के लिए प्रोत्साहित किया जाता है, जैसे कि %X कैसे काम करता है।[12]
  • scanf() फ़ंक्शन फ़ैमिली में %b बाइनरी रूपांतरण विनिर्देशक जोड़ें।[12]
  • strtol()और wcstol() फ़ंक्शन परिवारों में0b और 0B बाइनरी रूपांतरण समर्थन जोड़ें।[12]
  • फ़ंक्शन बनाएं bsearch(), bsearch_s(), memchr(), strchr(), strpbrk(), strrchr(), strstr(), और उनके व्यापक समकक्ष wmemchr(), wcschr(), wcspbrk(), wcsrchr(), wcsstr() एक स्थिर स्थिर वस्तु वापस आ गई है यदि कोई उन्हें पास नहीं किया गया था।[13]

प्रीप्रोसेसर

  • ऐड #elifdef और #elifndef प्रक्रमण करने से पहले के निर्देश[14] मूलतः #elif defined और #elif !defined.समकक्ष हैं। दोनों निर्देश C++23 मानक और जीएनयू कंपाइलर संग्रह 12 कंपाइलर में भी जोड़े गए थे।[15]
  • बाइनरी संसाधन समावेशन के लिए #embed निर्देश जोड़े और __has_embed प्रीप्रोसेसर निर्देशों द्वारा संसाधन की उपलब्धता की जाँच करने की अनुमति दे।[16]
  • निदान के लिए #warning निर्देश जोड़े।[17]
  • प्रीप्रोसेसर निर्देशों द्वारा हेडर की उपलब्धता की जांच करने की अनुमति देने के लिए __has_include जोड़े।[18]
  • __has_c_attribute जोड़ें, जिससे प्रीप्रोसेसर निर्देशों द्वारा किसी विशेषता की उपलब्धता की जाँच की जा सके।[19] (नई विशेषता सुविधा के लिए C++ संगतता समूह देखें)
  • विविध मैक्रोज़ के लिए __VA_OPT__ कार्यात्मक मैक्रो जो अपने तर्क तक विस्तारित होता है केवल तभी जब एक वैरिएडिक तर्क युक्त मैक्रो को पारित किया गया हो।[20]

प्रकार

  • nullptr_t जोड़ें|nullptr_t, एक शून्य सूचक प्रकार।[21]* जोड़ना _BitInt(N) और unsigned _BitInt(N) बिट-सटीक पूर्णांकों के लिए प्रकार। जोड़ना BITINT_MAXWIDTH अधिकतम बिट चौड़ाई के लिए मैक्रो।[22][23] जोड़ना ckd_add(), ckd_sub(), ckd_mul() जाँचे गए पूर्णांक संचालन के लिए मैक्रोज़।[24]
  • वेरिएबल-संशोधित प्रकार (लेकिन वेरिएबल-लंबाई सरणी नहीं जो स्टैक पर स्वचालित_वेरिएबल आवंटित होते हैं) एक अनिवार्य सुविधा बन जाते हैं।[25]
  • उपयोग के लिए बेहतर समर्थन const सरणियों के साथ.[26]
  • का मानकीकरण typeof(...) ऑपरेटर।[27]
  • का अर्थ auto कीवर्ड को प्रकार के अनुमान के कारण बदल दिया गया था, जबकि एक प्रकार के साथ उपयोग किए जाने पर स्टोरेज क्लास विनिर्देशक के पुराने अर्थ को भी बरकरार रखा गया था। C++ के विपरीत, C23 केवल ऑब्जेक्ट परिभाषाओं के लिए प्रकार अनुमान की अनुमति देता है (कोई अनुमान फ़ंक्शन रिटर्न प्रकार या फ़ंक्शन पैरामीटर प्रकार नहीं)।[28]
  • एक ही टैग के साथ संगत प्रकार की पुनर्घोषणा की अनुमति देने के लिए संरचना, संघ और प्रगणित प्रकारों के लिए संगतता नियमों को बदल दिया गया था।[29]

स्थिरांक

  • nullptr जोड़ें|nullptr के लिए स्थिरांक nullptr_t प्रकार।[21]
  • जोड़ना wb और uwb के लिए पूर्णांक शाब्दिक प्रत्यय _BitInt(N) और unsigned _BitInt(N) प्रकार,[30] जैसे कि 6uwb एक उपज देता है unsigned _BitInt(3), और -6wb एक उपज देता है signed _BitInt(4) जिसमें तीन वैल्यू बिट और एक साइन बिट है।
  • जोड़ना 0b और 0B पूर्णांक शाब्दिक उपसर्ग,[31] जैसे कि 0b10101010 (0xAA के बराबर)।
  • जोड़ना ' शाब्दिक स्थिरांक के लिए अंक विभाजक,[32] जैसे कि 0xFE'DC'BA'98 (0xFEDCBA98 के बराबर), 299'792'458 (प्रकाश की गति के बराबर), 1.414'213'562 (2|1.414213562 के वर्गमूल के बराबर)।
  • किसी के अंतर्निहित प्रकार को निर्दिष्ट करने की क्षमता जोड़ें enum.[33]
  • अनुमति देना enum में उन मानों को संग्रहीत करने के लिए कोई निश्चित अंतर्निहित प्रकार नहीं है जिन्हें प्रस्तुत नहीं किया जा सकता int.[34]

कीवर्ड

  • जोड़ना true और false कीवर्ड.[35]
  • जोड़ना alignas, alignof, bool, static_assert, थ्रेड-स्थानीय भंडारण|thread_local कीवर्ड. पहले से परिभाषित कीवर्ड वैकल्पिक वर्तनी बन जाते हैं: _Alignas, _Alignof, _Bool, _Static_assert, _Thread_local.[36]
  • जोड़ना _BitInt कीवर्ड (प्रकार समूह देखें)
  • जोड़ना typeof और typeof_unqual कीवर्ड (प्रकार समूह देखें)
  • जोड़ना nullptr कीवर्ड (स्थिरांक समूह देखें)
  • जोड़ना constexpr कीवर्ड (अन्य समूह देखें)
  • जोड़ना _Decimal32, _Decimal64, _Decimal128 (वैकल्पिक) दशमलव फ़्लोटिंग पॉइंट के लिए कीवर्ड|दशमलव फ़्लोटिंग-पॉइंट अंकगणित (अन्य समूह देखें)

सिंटेक्स

  • लेबल (कंप्यूटर विज्ञान) घोषणा (कंप्यूटर प्रोग्रामिंग) से पहले और कथन (कंप्यूटर विज्ञान) #कंपाउंड कथन के अंत में दिखाई दे सकता है।[37]
  • फ़ंक्शन परिभाषाओं में अनाम पैरामीटर।[38]
  • शून्य आरंभीकरण के साथ {} (CLAss के आरंभीकरण सहित)।[39]
  • विविध कार्यों को अब इलिप्सिस और से पहले नामित तर्क की आवश्यकता नहीं है va_start मैक्रो को अब दूसरे तर्क की आवश्यकता नहीं है और न ही यह पहले तर्क के मौजूद होने पर उसके बाद किसी तर्क का मूल्यांकन करता है।[40]
  • C++11 स्टाइल C++11#Attributes सिंटैक्स जोड़ें[41] दोहरे वर्गाकार कोष्ठकों का उपयोग करना [[]].
  • एकल-तर्क जोड़ें _Static_assert C++17 के साथ अनुकूलता के लिए।[42]
  • प्रोटोटाइप में सूचीबद्ध बिना किसी तर्क के कार्य करता है void foo() बिना किसी तर्क के समझा जाता है (K&R फ़ंक्शन घोषणाओं को हटाना देखें)

सी++ अनुकूलता

  • विभिन्न सिंटैक्स परिवर्तन C++ के साथ संगतता में सुधार करते हैं, जैसे घोषणाओं से पहले लेबल (कंप्यूटर विज्ञान), अनाम फ़ंक्शन तर्क, शून्य आरंभीकरण {}, नामित तर्क के बिना विविध कार्य, C++11 शैली विशेषताएँ, _Static_assert (सिंटेक्स देखें)। कंपाउंड स्टेटमेंट के अंत में लेबल (कंप्यूटर विज्ञान) के लिए C++23 में एक समान परिवर्तन किया गया था।[43]
  • C++-शैली विशेषताएँ जोड़ें (सिंटैक्स देखें)। विशेषताएँ जोड़ें [44] [[deprecated]],[45] [[fallthrough]],[46] [[maybe_unused]],[47] [[nodiscard]],[48] और [[noreturn]] C++11 के साथ संगतता के लिए विशेषता, फिर बहिष्कृत करें _Noreturn, noreturn, हेडर <stdnoreturn.h> C11 (C मानक संशोधन) में पेश की गई सुविधाएँ।[49] C++23 के साथ संगतता के लिए डुप्लिकेट विशेषताओं की अनुमति है।[50] सभी मानक विशेषताएँ दोहरे अंडरस्कोर से भी घिरी हो सकती हैं (उदा [[__deprecated__]] के बराबर है [[deprecated]]).
  • जोड़ना u8 C++17 के साथ संगतता के लिए UTF-8 एन्कोडिंग का प्रतिनिधित्व करने के लिए वर्ण शाब्दिक के लिए उपसर्ग।[51][52]
  • जोड़ना #elifdef और #elifndef C++23 के साथ संगतता के लिए प्रीप्रोसेसिंग निर्देश।[14](प्रीप्रोसेसर समूह देखें)

अन्य विशेषताएं

  • ISO/IEC 60559:2020 के लिए समर्थन, फ्लोटिंग-पॉइंट अंकगणित के लिए IEEE 754 का वर्तमान संस्करण, विस्तारित बाइनरी फ़्लोटिंग-पॉइंट अंकगणित और (वैकल्पिक) दशमलव फ़्लोटिंग-पॉइंट अंकगणित के साथ।[53][54]
  • constexpr e> वस्तुओं के लिए विनिर्देशक, लेकिन फ़ंक्शंस के लिए नहीं, constexpr (C++)|C++ के समकक्ष के विपरीत।[55]
  • जोड़ना char8_t UTF-8 एन्कोडेड डेटा को संग्रहीत करने के लिए टाइप करें और u8 वर्ण स्थिरांक और स्ट्रिंग अक्षर के प्रकार को बदलें char8_t. इसके अलावा, कार्य mbrtoc8() और c8rtomb() एक संकीर्ण मल्टीबाइट कैरेक्टर को क्रमशः UTF-8 एन्कोडिंग में और एक एकल कोड बिंदु को UTF-8 से एक संकीर्ण मल्टीबाइट कैरेक्टर प्रतिनिधित्व में परिवर्तित करने के लिए।[56]
  • वह सब स्पष्ट करें char16_t स्ट्रिंग्स और लिटरल यूटीएफ-16 एन्कोडेड होंगे, और सभी char32_t स्ट्रिंग्स और अक्षर UTF-32 एन्कोडेड होंगे, जब तक कि अन्यथा स्पष्ट रूप से निर्दिष्ट न किया गया हो।[57]
  • भंडारण वर्ग विनिर्देशकों को मिश्रित शाब्दिक परिभाषा में प्रदर्शित होने की अनुमति दें।[58]

अप्रचलित सुविधाएँ

कुछ पुरानी अप्रचलित सुविधाओं को C23 के कार्यशील मसौदे से या तो हटा दिया गया है या हटा दिया गया है:

  • डिग्राफ और ट्रिग्राफ हटाएं#सी।[59]
  • C_(प्रोग्रामिंग_भाषा)#K&R_C|K&R फ़ंक्शन परिभाषाएं/घोषणाएं हटाएं (फ़ंक्शन तर्कों के बारे में कोई जानकारी नहीं)।[60][61]
  • दो के पूरक के अलावा अन्य हस्ताक्षरित पूर्णांकों के लिए निरूपण हटाएँ। दो के पूरक हस्ताक्षरित पूर्णांक प्रतिनिधित्व की आवश्यकता होगी।[62]
  • *_HAS_SUBNORM}RM मैक्रोज़ में <float.h> अप्रचलित विशेषताएं हैं.[63]

संकलक समर्थन

जीएनयू कंपाइलर संग्रह 9,[64] बजना 9.0,[65] और एलसीसी_(कंपाइलर)#पेलेस_सी 11.00[66] कंपाइलर इस मानक का समर्थन करने के लिए एक प्रयोगात्मक कंपाइलर ध्वज लागू करते हैं।

यह भी देखें

संदर्भ

  1. "सी का इतिहास". cppreference.com. 2022-06-27. Archived from the original on October 19, 2022.
  2. "WG14-N2086 : C2x Charter". open-std.org. 2016-09-20. Archived from the original on December 22, 2022.
  3. "WG14-N3132 : Revised C23 Schedule" (PDF). open-std.org. 2023-06-04. Archived (PDF) from the original on June 9, 2023.
  4. 4.0 4.1 "WG14-N3096 : Draft for ISO/IEC 9899:2023" (PDF). open-std.org. April 1, 2023. Archived (PDF) from the original on April 2, 2023.
  5. "WG14-N2437 : Agenda for October 2019". open-std.org. 2019-10-21. Archived from the original on March 5, 2021.
  6. "WG14-N2897 : memset_explicit()". open-std.org. 2021-12-27. Archived from the original on October 25, 2022.
  7. "WG14-N2349 : Toward more efficient string copying and concatenation". open-std.org. 2019-03-18. Archived from the original on September 30, 2022.
  8. "WG14-N2353 : strdup() and strndup()". open-std.org. 2019-03-18. Archived from the original on December 24, 2022.
  9. "WG14-N2974 : Queryable pointer alignment" (PDF). open-std.org. 2022-04-15. Archived (PDF) from the original on October 13, 2022.
  10. 10.00 10.01 10.02 10.03 10.04 10.05 10.06 10.07 10.08 10.09 10.10 "WG14-N3022 : Modern Bit Utilities". open-std.org. 2022-07-06. Archived from the original on December 24, 2022.
  11. "WG14-N2833 : Add timegm() as non-optional part of time.h". open-std.org. 2021-10-07. Archived from the original on December 1, 2021.
  12. 12.0 12.1 12.2 "WG14-N2630 : formatted input/output of binary integer numbers" (PDF). open-std.org. 2021-01-01. Archived (PDF) from the original on December 14, 2022.
  13. "WG14-N3020 : Qualifier-preserving standard library functions" (PDF). open-std.org. 2022-06-13. Archived (PDF) from the original on October 13, 2022.
  14. 14.0 14.1 "WG14-N2645 : Add support for preprocessing directives #elifdef and #elifndef" (PDF). open-std.org. 2020-01-25. Archived (PDF) from the original on November 28, 2022.
  15. "GCC 12 Adds Support For New #elifdef #elifndef Directives". phoronix. May 12, 2021. Archived from the original on December 27, 2022.
  16. "WG14-N3017 : #embed - a scannable, tooling-friendly binary resource inclusion mechanism". open-std.org. 2022-06-27. Archived from the original on December 24, 2022.
  17. "WG14-N2686 : #warning" (PDF). open-std.org. 2022-07-22. Archived (PDF) from the original on November 28, 2022.
  18. "WG14-N2799 : __has_include for C" (PDF). open-std.org. 2021-08-30. Archived (PDF) from the original on December 24, 2022.
  19. "WG14-N2553 : Querying attribute support" (PDF). open-std.org. 2020-08-04. Archived (PDF) from the original on October 14, 2022.
  20. "WG14-N3033 : Comma omission and comma deletion". open-std.org. 2022-07-20. Archived from the original on December 27, 2022.
  21. 21.0 21.1 "WR14-N3042 : Introduce the nullptr constant". open-std.org. 2022-07-22. Archived from the original on December 24, 2022.
  22. "WG14-N2763 : Adding a Fundamental Type for N-bit integers" (PDF). open-std.org. 2021-06-21. Archived (PDF) from the original on December 27, 2022.
  23. "WG14-N3035 : _BitInt Fixes" (PDF). open-std.org. 2022-07-21. Archived (PDF) from the original on October 13, 2022.
  24. "WG14-N2867 : Checked N-Bit Integers" (PDF). open-std.org. 2021-11-28. Archived (PDF) from the original on December 14, 2022.
  25. "WG14-N2778 : Variably-Modified Types" (PDF). open-std.org. 2021-07-11. Archived (PDF) from the original on December 22, 2022.
  26. "WG14-N2607 : Compatibility of Pointers to Arrays with Qualifiers" (PDF). open-std.org. 2020-10-31. Archived (PDF) from the original on October 13, 2022.
  27. "WG14-N2899 : Not-so-magic - typeof for C". open-std.org. 2022-01-21. Archived from the original on December 24, 2022.
  28. "WG14-N3007 : Type inference for object definitions". open-std.org. 2022-06-10. Archived from the original on December 24, 2022.
  29. "WG14-N3037 : Improved Rules for Tag Compatibility (updates N3032)" (PDF).
  30. "WG14-N2775 : Literal suffixes for bit-precise integers" (PDF). open-std.org. 2021-07-13. Archived (PDF) from the original on December 27, 2022.
  31. "WG14-N2549 : Allow for binary integer constants" (PDF). open-std.org. 2020-07-30. Archived (PDF) from the original on December 22, 2022.
  32. "WG14-N2626 : Digit separators" (PDF). open-std.org. 2020-12-15. Archived (PDF) from the original on December 19, 2022.
  33. "WG14-N3030 : Enhancements to Enumerations". open-std.org. 2022-07-19. Archived from the original on November 26, 2022.
  34. "WG14-N3029 : Improved Normal Enumerations". open-std.org. 2022-07-19. Archived from the original on January 29, 2023.
  35. "WG14-N2935 : Make false and true first-class language features" (PDF). open-std.org. 2022-02-15. Archived (PDF) from the original on November 21, 2022.
  36. "WG14-N2934 : Revise spelling of keywords" (PDF). open-std.org. 2022-02-15. Archived (PDF) from the original on December 24, 2022.
  37. "WG14-N2508 : Free Positioning of Labels Inside Compound Statements" (PDF). open-std.org. 2020-03-28. Archived (PDF) from the original on December 27, 2022.
  38. "WG14-N2510 : Allowing unnamed parameters in a function definition" (PDF). open-std.org. 2020-04-09. Archived (PDF) from the original on December 24, 2022.
  39. "WG14-N2900 : Consistent, Warningless, and Intuitive Initialization with {}". open-std.org. 2022-01-01. Archived from the original on December 27, 2022.
  40. "WG14-N2975 : Relax requirements for variadic parameter lists" (PDF). open-std.org. 2022-04-15. Archived (PDF) from the original on November 28, 2022.
  41. "WG14-N2335 : Attributes in C" (PDF). open-std.org. 2019-03-09. Archived (PDF) from the original on October 26, 2022.
  42. "WG14-N2265 : Harmonizing static_assert with C++" (PDF). open-std.org. 2018-07-06. Archived (PDF) from the original on March 28, 2023.
  43. "मिश्रित कथनों के अंत में लेबल (सी संगतता)" (PDF). 2022-01-13.
  44. "WG14-N2554 : Minor attribute wording cleanups" (PDF). open-std.org. 2020-08-04. Archived (PDF) from the original on November 28, 2022.
  45. "WG14-N2334 : The deprecated attribute" (PDF). open-std.org. 2019-01-22. Archived (PDF) from the original on October 19, 2022.
  46. "WG14-N2408 : The fallthrough attribute" (PDF). open-std.org. 2019-08-11. Archived (PDF) from the original on December 25, 2022.
  47. "WG14-N2270 : The maybe_unused attribute" (PDF). open-std.org. 2018-07-06. Archived (PDF) from the original on December 25, 2022.
  48. "WG14-N2267 : The nodiscard attribute" (PDF). open-std.org. 2018-07-06. Archived (PDF) from the original on October 19, 2022.
  49. "WG14-N2764 : The noreturn attribute" (PDF). open-std.org. 2021-06-21. Archived (PDF) from the original on December 25, 2022.
  50. "WG14-N2557 : Allow Duplicate Attributes" (PDF). open-std.org. 2020-09-01. Archived (PDF) from the original on November 28, 2022.
  51. "WG14-N2418 : Adding the u8 character prefix" (PDF). open-std.org. 2019-09-02. Archived (PDF) from the original on January 13, 2023.
  52. What is the point of the UTF-8 character literals proposed for C++17?; Stack Overflow.
  53. "WG14-N2341 : ISO/IEC TS 18661-2 - Floating-point extensions for C - Part 2: Decimal floating-point arithmetic" (PDF). open-std.org. February 26, 2019. Archived (PDF) from the original on December 27, 2022. {{cite web}}: |archive-date= / |archive-url= timestamp mismatch (help)
  54. "WG14-N2601 : Annex X - IEC 60559 interchange and extended types" (PDF). open-std.org. October 15, 2020. Archived (PDF) from the original on December 27, 2022. {{cite web}}: |archive-date= / |archive-url= timestamp mismatch (help)
  55. "WG14-N3018 : The constexpr specifier for object definitions". open-std.org. 2022-07-06. Archived from the original on December 24, 2022.
  56. "WG14-N2653 : char8_t: A type for UTF-8 characters and strings (Revision 1)". open-std.org. 2021-06-04. Archived from the original on May 27, 2023.
  57. "WG14-N2728 : char16_t & char32_t string literals shall be UTF-16 & UTF-32". open-std.org. 2021-05-15. Archived from the original on May 27, 2023.
  58. "WG14-N3038 : Introduce storage-class specifiers for compound literals". open-std.org. 2022-07-21. Archived from the original on November 26, 2022.
  59. "WG14-N2940 : Removing trigraphs??!" (PDF). open-std.org. 2022-03-02. Archived (PDF) from the original on October 26, 2022.
  60. "WG14-N2432 : Remove support for function definitions with identifier lists proposal" (PDF). open-std.org. September 25, 2019. Archived (PDF) from the original on December 27, 2022.
  61. "WG14-N2841 : No function declarators without prototypes". open-std.org. 2021-10-10. Archived from the original on November 12, 2022.
  62. "WG14-N2412 : Two's complement sign representation" (PDF). open-std.org. August 11, 2019. Archived (PDF) from the original on December 27, 2022.
  63. "WG14-N2993 : Make *_HAS_SUBNORM be obsolescent". open-std.org. 2022-06-06. Archived from the original on December 5, 2022.
  64. "GCC 9 Release Notes". GNU Project. Archived from the original on December 27, 2022.
  65. "Clang 9.0 - add new language mode for C2x". LLVM Project Repository. May 14, 2019. Archived from the original on December 27, 2022.
  66. "पेल्स सी - 10.00 और 11.00 के बीच बड़े बदलाव". smorgasbordet.com. Archived from the original on December 27, 2022.


बाहरी संबंध

Preceded by C language standards Latest