سي99
المحتويات

في البداية، C99 (المعروف سابقًا باسم C9X ) هو اسم غير رسمي لـ ISO / IEC 9899: 1999، وهو إصدار سابق من معيار لغة البرمجة C. يمتد الإصدار السابق (C90) بميزات جديدة للغة والمكتبة القياسية، ويساعد التطبيقات على الاستفادة بشكل أفضل من أجهزة الكمبيوتر المتاحة، مثل حساب الفاصلة العائمة IEEE 754-1985 وتقنية المترجم. يحل إصدار C11 من معيار لغة البرمجة C، الذي تم نشره في سنة 2011، محل C99. وتعرض الأقسام التالية جوانب أخرى من الموضوع.
puts("z is not a number");
if (isinf(z))
}
int main(void)
{
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;
#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;
- }
مثال
وفي السياق ذاته، يوضح المثال التالي المشروح من كود C99 لحساب دالة الكسر المستمر الميزات الرئيسية: #include
- #include
- #include
- #include
- #include
- #include
- #include
- double compute_fn(double z) // [1]
- {
- #pragma STDC FENV_ACCESS ON // [2]
- assert(FLT_EVAL_METHOD == 2); // [3]
- if (isnan(z)) // [4]
قراءة متعمقة
روابط خارجية
ومن جهة أخرى، الأساس المنطقي للمعيار الدولي - لغات البرمجة - التنقيح C 5.10 ، أبريل 2003 ، الأساس المنطقي لـ C99
أشياء جديدة في C9X
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟