Большие различия при переносе кода между архитектурами на современных машинах являются:
- Размер указателя: 32-бит против 64-бит, например.
- Размер длинный: обычно такой же, как размер указателя.
- Порядок байтов: большой эндиан или маленький конец (или некоторые древние машины были средними).
- Двоичная плавающая запятая против десятичной плавающей запятой: десятичная плавающая точка - это недавний стандарт, добавленный в 2008 году. Это не обычная проблема, но многие машины не имеют аппаратной поддержки (только для компьютеров IBM Power)? для десятичной плавающей запятой и библиотеки эмуляции.
Есть еще несколько вещей, когда речь идет о действительно старых машинах:
- Длина машинного слова: связанные с размером указателя
- число битов в байте: это теперь стандартизован на 8, но еще 40 лет назад это было не так.
- Представление для числа с плавающей запятой. До IEEE-754 не было стандартных, а разные машины имели разные представления. VAX с двумя типами с плавающей запятой, вероятно, является одним из самых известных примеров.
- Представление отрицательных чисел. Сегодня машины используют два дополнения. Cray 1 классно использовал свое дополнение.
Я не думаю, что это конкретная процедура. Это довольно общее. Не могли бы вы указать, что такое арка источника и целевая арка? – Skyler
Да на самом деле довольно общий, но мой учитель задал этот вопрос, и я думаю, она просто хочет, чтобы я говорил о возможных общих проблемах при передаче, что может произойти с целыми данными, данными с плавающей запятой и данными с символами соответственно? Как они могут быть перенесены? Например, данные могут быть дополнены нулями и т. Д. – user1349536
Ознакомьтесь с архитектурой _big endian_ и _little endian_ и подумайте о размере в байтах каждого из этих целых типов. –