نتائج غير معرفة
أهلا بك مجددا هل تريد ان تخرج عن المعتاد وتقرأ شئ ينعش ذاكرتك واصل القراءة
أن لم يتم تعريف قاعدة لعملية محددة فى ترجمة كود سي فأن الكود يسمى غير معرف undefined لذلك تجد كل مترجم يعطيك نتيجة مختلفة لنفس الكود.
عادا المترجمات ﻻتفحص اﻻكواد او العمليات الغير معرفة ففحص الكود يرجع لمعرفتك بقواعد اللغة
مثال:
#include <stdio.h>
int main(void)
{
char buffer[5];
strcpy(buffer, "Hello World");
printf("Hello World!\n%s", buffer);
return 0;
}كما بالمثال السابق أن عملية نسخ النص الى المصفوفة buffer التى حجمها أصغر من النص نفسة هذة تسمى عملية غير معرفة undefined أى ليس لها قاعدة حتى تتبعها المترجمات آثناء فحص الكود .
والكود مر على المترجم مرور السلام مع أنه خاطئ
اﻻسئلة الغير معرفة اﻻكثر شيوعا:
1. ماهى مخرجات الكود التالى؟
int i = 7; printf( "%d",i++ * i++ );
2. ما الذى يمكن ان يحدث للمصوفة بعد تنفيذ الكود التالى:
int a[5], i = 1; a = i++;
3. ماهى قيمة المتغير i بعد تشغيل الكود التالى:
int i = 7; i = ++i;
هذة اﻻسئلة يسميها بعض المبرمجين اﻻسئلة( الغبية) اى التى تحتار فيها يا ترى صحيحة أم خاطئة؟ اذا لو ان مثل هذة اﻻسئلة سئلت فأن اﻻجابة الصحيحة هى غير معرف undefined .
ﻻحظ: بالنسبة للبرامج أعلاة قد تحصل على مخرجات. ولكنها خاطئة. يجب عليك ان تفهم ان المترجمات ربما لن تفحص القواعد الغير معرفة .
تحياتى العطرة والله ولى التوفيق

