Ну, пример одного из этапов будет хранить исходный код в формате, ориентированном на запись, например, в z/OS на мэйнфрейме.
Этих наборов данных имеет фиксированные записи размеров так, если ваш набор данных спецификация была FB80 (фиксированная, заблокированы, длиной записи 80), «линия»:
int main (void)
будет сохранен как эти пятнадцати символов затем шестьдесят пять пробелов и no Новая линия.
Передача первого этапа будет считана в записи, возможно, отделите конечные пробелы и добавьте символ новой строки, прежде чем передавать строку на следующую фазу.
В соответствии со стандартом, это также фаза, которая обрабатывает триграфы, такие как преобразование ??(
в [
на 3270 терминала, который не имеет поддержки [
характера.
Примером фазы пятого является то, что вы пишете свой код на z/OS (используя EBCDIC), но перекрестно скомпилируете его для Linux/x86 (используя ASCII/Unicode).
В этом случае исходные символы в строковых литералах и символьных константах должны иметь представление ASCII, а не EBCDIC. В противном случае вы, скорее всего, получите какой-то поистине странный вывод на вашем Linux-боксе.
Большинство этих этапов достаточно понятны. Есть ли, в частности, какие-то проблемы? –
Да, т. Е. 1 и 5. Можете ли вы дать мне некоторые конкретные примеры многобайтового отображения или преобразования перехода? – xdevel2000