[an error occurred while processing this directive]
|
А если серьезно - объявляя тип переменной, ты заказываешь компилятору СПОСОБ размещения этой переменной в памяти/регистрах и, как следствие - ПРАВИЛА И ПОСЛЕДОВАТЕЛЬНОСТЬ манипуляций с переменными, занимающими более чем одну минимально адресуемую ячейку памяти или регистр. Безусловно корректными будут лишь операции над ОДИНАКОВЫМИ типами, мало того - РЕЗУЛЬТАТ тоже обязан располагаться в переменной того же типа, что и входные операнды.
Грамотный компилятор должен уметь обращать твое внимание на несоответствие типов переменных, участвующих в операции, но ты должен иметь возможность это ему запретить - есть масса случаев, когда гораздо экономнее будет производить действия над разнотипными операндами. В таких случаях опасно БЕЗДУМНО доверяться компилятору, и применять это следует только тогда, когда до малейших деталей представляешь себе все нюансы, связанные с размещением разнотипных данных и с неявным приведением типов - каждый компилятор здесь может пуститься во все тяжкие. Поначалу лучше будь послушным и делай как положено, нахулиганить еще успеешь. А Паскаль вспоминай пореже - это учебное пособие с автоматическим исправлением ошибок, а не боевое оружие эмбеддера ;)
E-mail: info@telesys.ru