Cтраница 1
Неявное преобразование типов в процессе выполнения оператора присваивания в языке Паскаль разрешено только в двух случаях - от типа с более узким диапазоном к типу с более широким диапазоном для ограниченных ( интервальных) типов и от целого типа к вещественному. В языке Си неявное преобразование типов в процессе выполнения оператора присваивания разрешено всегда независимо от типа операндов в левой и правой частях оператора присваивания. [1]
Неявные преобразования типа, вызванные попыткой присвоить некоторое значение переменной с отличающимся описанием типа, являются важной частью Кобола. Большая часть преобразований данных для вывода по формату выполняется с помощью таких неявных преобразований. [2]
Автоматические или неявные преобразования типов операндов могут съедать заметную долю процессорного времени. [3]
Потрясающая способность TField выполнять неявные преобразования типов делает его похожим на хамелеона, когда речь идет о работе с различными данными. Это упрощает приложения и уменьшает количество работы по их адаптации к различным структурам данных. [4]
Для обнаружения ошибок, возникающих из-за неявного преобразования типов, следует использовать отладочные распечатки первых значений переменных, а также промежуточных результатов вычислений. [5]
При применении конструктора преобразования для выполнения неявного преобразования типов C может использовать неявный вызов только одного конструктора, чтобы попытаться удовлетворить требование другой перегруженной операции. Невозможно удовлетворять требования перегруженных операций путем выполнения последовательности неявных определенных пользователем преобразований. [6]
С таким подходом резко контрастирует подход, используемый в языке Си, при котором любые неявные преобразования типов либо разрешены, либо не диагностируются трансляторами с языка Си. Например, используемый автором транслятор с языка Си, работающий на ЭВМ Interdata 8 / 32, диагностирует лишь одну ошибку в программе, написанной на языке Си и приведенной ниже. На практике трудно встретить программу, написанную на языке Си и не использующую неявных преобразований типов. При этом наиболее часто встречаются неявные преобразования от символьного типа к целому. [7]
Неявное преобразование типов в процессе выполнения оператора присваивания в языке Паскаль разрешено только в двух случаях - от типа с более узким диапазоном к типу с более широким диапазоном для ограниченных ( интервальных) типов и от целого типа к вещественному. В языке Си неявное преобразование типов в процессе выполнения оператора присваивания разрешено всегда независимо от типа операндов в левой и правой частях оператора присваивания. [8]
При выполнении этого оператора вычисляется целое значение выражения, стоящего справа, затем это значение преобразуется к вещественному типу, так что его можно теперь присвоить переменной скоростьпотока. Такое преобразование называется неявным преобразованием типа, поскольку знак операции или функции преобразования в явном виде отсутствует. Такое преобразование возможно, так как на большинстве вычислительных машин диапазон представляемых вещественных значений шире диапазона целых значений, и присваивание не вызовет непредсказуемого результата. [9]
Текстовыми файлами пользуются наиболее часто, поэтому для удобства пользования ими язык Паскаль предусматривает многие специальные средства. Наиболее важным из них является неявное преобразование типов, выполняемое процедурами чтения и записи. В соответствии с определением этих процедур, данном в разд. [10]
Предположим, что первые три переменных в выражении имеют вещественный тип, а остальные - целый. В этом выражении выполняются 3 неявных преобразования типа. [11]
В языке Паскаль разрешены только такие неявные преобразования типов, которые не приводят к потере информации. Для проведения преобразований типов, приводящих к потере информации, в языке Паскаль предусмотрены соответствующие функции преобразования типов, которые должны быть вызваны явно. В языке Си в отличие от языка Паскаль допускается неявное преобразование типов для всех базовых типов и указателей. Однако Мобильный Транслятор с языка Си выводит предупреждение о каждом встретившемся в программе случае неявного преобразования типов, в котором участвует указатель. [12]
Некоторые языки программирования исповедуют философию вседозволенности. Многие наиболее хитроумные и наименее надежные программистские трюки основываются на неявном преобразовании типов. Например, пусть некоторый язык программирования кодирует значение FALSE нулем. В этом языке существует такой трюк, для того чтобы убедиться, что каждая из нескольких логических переменных имеет значение FALSE, сложить их. [13]
Фортран не накладывает каких-либо серьезных ограничений на использование разнотипных данных, допуская широкий набор правил неявного преобразования типов значений. Очень часто эффект этих преобразований может оказаться неожиданным цля автора программы. [14]
Компилятор C знает только, как вычислять выражения с операндами, имеющими идентичные типы. Чтобы обеспечить одинаковый тип операндов, компилятор осуществляет операцию преобразования по умолчанию ( называемую также неявным преобразованием типов) над выделенными операндами. [15]