Wtf is Casting ?

vinney

Well-known member
צריך לשים לב לקדימות אופרטורים

CASTING מתבצע קודם. במקרה הזה זה לא משנה, אבל חשוב להדגיש שאתה מבצע CASTING על A ולא על התוצאה של החלוקה. עדיף להשתמש בסוגריים.
 

annefan

New member
אני קצת חלוד

אבל בגדול הטיפוס של התוצאה ב-C נקבע לפי האופרנד הראשון, כלומר:
float a = 1/2;​
a יהיה שוה ל-0.0, בגלל שתוצאת החילוק בשלמים היא 0. לעומת זאת, אם תכתוב:
float a = 1.0/2; or float a = ((float)1)/2;​
a יהיה שווה ל-0.5 (בערך).
 

annefan

New member
חלוד, חלוד

הכלל שכתבתי לא נכון. התוצאה נקבעת, באופן כללי, על ידי האופרנד בעל טווח הייצוג הגדול יותר (float יהפוך ל-double, לדוגמא, short ל-int), ואצלך, אם אחד האופרנדים יהיה float, כך גם התוצאה.
 
אפשר גם בלי CAST

int a; int b; double result; /* .............. */ result = a; result /= b; /* VOILA */​
אין אין כמו פורטרן 77, משתנים שמתחילים ב I,J,K,L,M,N הם מטיפוס שלם כל השאר REAL
 
למעלה