سي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 على موقع واي باك مشين.

قراءة متعمقة

عدل

روابط خارجية

عدل
سبقه
'


تبعه