اولین نکته اینه که تبدیل به صورتی انجام میشه که دقت از دست نره. یعنی در صورتی که تبدیل بین int
و long int
باید انجام بشه در اولین تلاش کامپایلر سعی میکنه int
رو به long int
تبدیل کنه. البته این در عملگرهاست. مثلاً
int a;
long int b;
long int c = a+b;
در آرگومانهای تابع شیء فراخوانده شده باید تبدیل به نوع آرگومان تابع بشه.
void f(int x);
...
long int a;
f(a);
در این حالت long
به int
تبدیل شده و دقت از دست میره.
در این گام ابتدا سعی میشه تبدیل به انواع شبیه (مثلاً صحیح به صحیح و اعشاری به اعشاری) انجام بشه.
در کامپایلرهای قدیمی تبدیل صحیح به اعشاری و بالعکس هم در گام بعدی ممکن بود که در کامپایلرهای جدید تلاش برای این تبدیل به خطا منجر میشه
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)