За последние несколько месяцев я учился программировать для Mac (у меня есть опыт работы на других языках). Очевидно, это означало изучение языка Objective C и, следовательно, более простого языка C, на котором он основан. Итак, у меня возникла ошибка в этой цитате, которая относится к языку C / C ++ в целом, а не только к платформе Mac.
С C и C ++ предпочитают использовать int, а не
чар и короткие Основная причина позади
это то, что C и C ++ выполняют
арифметические операции и параметр
прохождение на целочисленном уровне, если у вас есть
целочисленное значение, которое может вписаться в
байт, вы все равно должны рассмотреть возможность использования
int для хранения номера. Если вы используете
char, компилятор будет первым
преобразовать значения в целое число,
выполнить операции, а затем
преобразовать результат в char.
Итак, мой вопрос, так ли это в средах Mac Desktop и IPhone OS? Я понимаю, что когда речь идет об этих средах, мы на самом деле говорим о 3-4 разных архитектурах (PPC, i386, Arm и вариант A4 Arm), поэтому, возможно, не будет единого ответа.
Тем не менее, общий принцип гласит, что в современных 32-битных / 64-битных системах использование 1-2-байтовых переменных, которые не соответствуют естественным 4-байтовым словам машины, не обеспечивает ожидаемой эффективности. *
Например, обычный старый C-массив из 100 000 символов меньше, чем те же 100 000 целых чисел, в четыре раза, но если при перечислении при считывании каждого индекса происходит приведение / упаковка / распаковка, мы увидеть общее снижение «производительности», несмотря на экономию памяти?