عرض مشاركة واحدة
  #11  
قديم 24-05-2013, 01:59 PM
tmrmsr tmrmsr غير متواجد حالياً
عضو ممتاز
 
تاريخ التسجيل: Aug 2012
المشاركات: 303
معدل تقييم المستوى: 14
tmrmsr is on a distinguished road
Smile

اقتباس:
المشاركة الأصلية كتبت بواسطة hass****hawy مشاهدة المشاركة
الخطأ لم يكن فى الأمر Return total ولكنه حدث فى الأمر total = First + second
وكما ذكرت حضرتك فإن total نوعها Short سوف تستقبل ناتج الجمع دون مشاكل
فكيف يظهر الخطأ فى total = First + second
الخطأ حدث عن تنفيذ السطر total = First + second
بسبب عندما يتم جمع قيمة المتغير First الذي نوعه Byte والمتغير Second الذي نوع Byte
ناتج الجمع يتم تمثيله أيضا في شكل Byte
وبما أن ناتج الجمع أكبر من الحد المسموع يحدث خطأ Runtime

لو القيمة في الحد المسموح يتم تحويل الناتج الذي نوعه Byte إلى Short
ليخزن في المتغير Total

ثم يتم تحويل المتغير Total إلى Byte ويرجع للدالة

وحلا لهذا الوضع
قم بعمل تحويل صريح
total =CShort( First) +CShort ( second)

ستجد الخطأ يظهر في سطر Return Total