سي99

C99 (المعروف سابقًا باسم C9X ) هو اسم غير رسمي لـ ISO / IEC 9899: 1999، وهو إصدار سابق من معيار لغة البرمجة C.  يمتد الإصدار السابق (C90) بميزات جديدة للغة والمكتبة القياسية، ويساعد التطبيقات على الاستفادة بشكل أفضل من أجهزة الكمبيوتر المتاحة، مثل حساب الفاصلة العائمة IEEE 754-1985 وتقنية المترجم. http://grouper.ieee.org/groups/754/meeting-materials/2001-07-18-c99.pdf  يحل إصدار 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

 المراجع 

 قراءة متعمقة 




 الأساس المنطقي للمعيار الدولي - لغات البرمجة - التنقيح C 5.10 ، أبريل 2003 ، الأساس المنطقي لـ C99

 روابط خارجية 

 أشياء جديدة في C9X
 ميزات C99

تصنيف:أدوات برمجة يونكس
تصنيف:سي (لغة برمجة)
تصنيف:معايير آي إي سي
تصنيف:معايير الأيزو