
24-05-2013, 01:59 PM
|
عضو ممتاز
|
|
تاريخ التسجيل: Aug 2012
المشاركات: 303
معدل تقييم المستوى: 14
|
|
اقتباس:
المشاركة الأصلية كتبت بواسطة 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
|