تضامنًا مع حق الشعب الفلسطيني |
سي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
روابط خارجية
سبقه |
'
|
تبعه |