سي99
C99 (المعروف سابقًا باسم C9X ) هو اسم غير رسمي لـ ISO / IEC 9899: 1999، وهو إصدار سابق من معيار لغة البرمجة C. [1] يمتد الإصدار السابق (C90) بميزات جديدة للغة والمكتبة القياسية، ويساعد التطبيقات على الاستفادة بشكل أفضل من أجهزة الكمبيوتر المتاحة، مثل حساب الفاصلة العائمة IEEE 754-1985 وتقنية المترجم. [2] يحل إصدار C11 من معيار لغة البرمجة C، الذي تم نشره في عام 2011، محل C99.
مثال
يوضح المثال التالي المشروح من كود C99 لحساب دالة الكسر المستمر الميزات الرئيسية:
#include <stdio.h> #include <math.h> #include <float.h> #include <fenv.h> #include <tgmath.h> #include <stdbool.h> #include <assert.h> double compute_fn(double z) // [1] { #pragma STDC FENV_ACCESS ON // [2] assert(FLT_EVAL_METHOD == 2); // [3] if (isnan(z)) // [4] puts("z is not a number"); if (isinf(z)) puts("z is infinite"); long double r = 7.0 - 3.0/(z - 2.0 - 1.0/(z - 7.0 + 10.0/(z - 2.0 - 2.0/(z - 3.0)))); // [5, 6] feclearexcept(FE_DIVBYZERO); // [7] bool raised = fetestexcept(FE_OVERFLOW); // [8] if (raised) puts("Unanticipated overflow."); return r; } int main(void) { #ifndef __STDC_IEC_559__ puts("Warning: __STDC_IEC_559__ not defined. IEEE 754 floating point not fully supported."); // [9] #endif #pragma STDC FENV_ACCESS ON #ifdef TEST_NUMERIC_STABILITY_UP fesetround(FE_UPWARD); // [10] #elif TEST_NUMERIC_STABILITY_DOWN fesetround(FE_DOWNWARD); #endif printf("%.7g\n", compute_fn(3.0)); printf("%.7g\n", compute_fn(NAN)); return 0; }
انظر أيضًا
- C18 ، C11 ، ANSI C ، إصدارات من لغة البرمجة C.
- C ++ 17 ، C ++ 14 ، C ++ 11 ، C ++ 03 ، C ++ 98 ، إصدارات من معيار لغة البرمجة C ++
- النقطة العائمة ، لمزيد من المناقشة حول استخدام أجهزة IEEE 754
المراجع
- ^ "ISO/IEC 9899:1999 - Programming languages - C". Iso.org. 8 ديسمبر 2011. مؤرشف من الأصل في 2016-10-10. اطلع عليه بتاريخ 2014-04-08.
- ^ http://grouper.ieee.org/groups/754/meeting-materials/2001-07-18-c99.pdf نسخة محفوظة 2017-06-22 على موقع واي باك مشين.
قراءة متعمقة
- Cheng، Harry (1 مارس 2002). "C99 & Numeric computing". Dr. Dobb's Journal. مؤرشف من الأصل في 2020-08-22.
- Seebach، Peter (24 مارس 2004). "Open source development using C99". developerWorks. آي بي إم. مؤرشف من الأصل في 2009-01-29.
- "Final version of the C99 standard with corrigenda TC1, TC2, and TC3 included, formatted as a draft" (PDF). مؤرشف من الأصل (PDF) في 2020-08-22. (3.61 MB)
- الأساس المنطقي للمعيار الدولي - لغات البرمجة - التنقيح C 5.10 ، أبريل 2003 ، الأساس المنطقي لـ C99
روابط خارجية
- أشياء جديدة في C9X
- ميزات C99
سبقه | '
| تبعه |
- ع
- ن
- ت
سي
- سي القياسية
- سي89 و سي90
- سي99
- سي11
- سي المدمجة
- ميسرا سي
- دالة
- Header files
- مكتبات سي
- Operators
- String
- Syntax
- Preprocessor
- أنواع البيانات في C
- Char (ctype.h)
- File I/O (stdio.h)
- Math (math.h)
- Dynamic memory (stdlib.h)
- String (string.h)
- Time (time.h)
- Variadic (stdarg.h)
- POSIX
- Bionic
- libhybris
- dietlibc
- EGLIBC
- مكتبة جنو لسي
- klibc
- Microsoft Run-time Library
- musl
- Newlib
- يوسي ليبس
- مكتبة سي المعيارية
- قائمة مترجمات شفرة حاسوب
- ACK
- بورلاند توربو سي
- Clang
- مترجم شفرة حاسوب جنو
- LCC
- Pelles C
- PCC
- TCC
- مايكروسوفت فيجوال ستوديو
- مايكرسوفت فيجوال ستوديو إكسبريس
- مايكروسوفت فيجوال سي++
- واتكوم سي/سي++
- مقارنة بين بيئات التطوير المتكاملة
- Anjuta
- كود::بلوكس
- CodeLite
- إكلبس
- جيني
- مايكروسوفت فيجوال ستوديو
- نت بينز
- التوافق بين سي وسي++
- مقارنة مع لغة سي للأنظمة المدمجة
- مقارنة مع باسكال
- مقارنة بين لغات البرمجة
- سي++
- سي شارب
- دي
- سي-الكائنية
- Alef
- ليمبو
- غو
- Vala
- تصنيف:لغة برمجة سي
- بوابة برمجة الحاسوب
- بوابة برمجيات
- بوابة علم الحاسوب