سي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

المراجع

  1. ^ "ISO/IEC 9899:1999 - Programming languages - C". Iso.org. 8 ديسمبر 2011. مؤرشف من الأصل في 2016-10-10. اطلع عليه بتاريخ 2014-04-08.
  2. ^ http://grouper.ieee.org/groups/754/meeting-materials/2001-07-18-c99.pdf نسخة محفوظة 2017-06-22 على موقع واي باك مشين.

قراءة متعمقة

روابط خارجية

سبقه
'


تبعه