На Blackfin, вероятно, непросто ответить, будут ли 32 или 16-битные типы генерировать более высокую производительность в целом, поскольку он поддерживает 16-, 32- и 64-битные инструкции и имеет два 16-битных MAC.Это будет зависеть от операций, но я полагаю, что вы доверяете своему оптимизатору компилятора принимать такие решения, он знает больше о сроках и расписании инструкций процессора, чем вы, вероятно, заботитесь.ваш компилятор int и short в любом случае имеют одинаковый размер.Обратитесь к документации, не тестируйте с sizeof
или посмотрите в заголовке limits.h
числовые диапазоны, которые будут определять ширину или различные типы.
Если вы действительно хотите ограничить размер типа данных, используйте stdint.h
типов, таких как int16_t
.
stdint.h
также определяет самые быстрые целочисленные типы минимальной ширины , такие как int_fast16_t
, это гарантирует минимальную ширину, но будет использовать больший тип, если он будет быстрее на вашей цели,Это, вероятно, самый переносимый способ решения вашей проблемы, но он зависит от разработчика, который принял правильные решения относительно подходящих типов для использования.На большинстве архитектур это мало что меняет или не меняет вообще, но на архитектурах RISC и DSP это может быть не так.Также не может быть так, что конкретный размер является самым быстрым при любых обстоятельствах, и это, вероятно, особенно верно в случае Blackfin.
В некоторых случаях (когда большие объемы данных передаются из внешнего источника).памяти), самый быстрый размер, вероятно, будет соответствовать ширине шины данных.