Переносимость кода C для различных схем адресации памяти

Если я правильно понимаю, спецификация DCPU-16 для 0x10c описывает 16-битное адресное пространство, где каждое смещение адресует 16-] битовое слово вместо байта, как в большинстве других архитектур памяти. Это имеет некоторые любопытные последствия, т.е. Я предполагаю, что sizeof(char)и sizeof(short)вернут 1.

Возможно ли обеспечить переносимость кода C между такими разными схемами адресации памяти? Какие ошибки нужно иметь в виду?

редактировать:возможно, мне следовало привести более конкретный пример. Допустим, у вас есть сетевой код, который работает с потоками байтов. Выбрасываете ли вы половину своей памяти, помещая только один байт в каждый адрес, чтобы код оставался прежним, или вы обобщаете все с помощью битовых сдвигов, чтобы иметь дело с N байтами на смещение?

edit2:Ответы, кажется, сосредоточены на вопросе о размерах типов данных, что не имело значения. -Я даже не должен был упоминать об этом. Вопрос в том, как справиться с потерей возможности адресации любого байта в памяти с помощью указателя. Разумно ли ожидать, что код будет агностичен по этому поводу?

10
задан Wim Coenen 11 April 2012 в 18:58
поделиться