SD CC может переопределить операторы? - PullRequest
0 голосов
/ 08 февраля 2020

Я пытался использовать SD CC для компиляции чрезвычайно легких C программ для запуска на калькуляторе TI83 (да, вы можете это сделать). Будучи старым калькулятором, он не имеет много оперативной памяти для хранения программы, а процессор очень медленный. Я написал код, похожий на *((char*)(x/8)) |= 0x80>>(x&7), в качестве простой подпрограммы, чтобы включить один бит, где x - это символ со знаком. Проблема заключается в том, что SD CC реализует стандарт C преобразования всех данных в 16-битные числа, что добавляет один уровень сложности, а затем упускает тот факт, что x / 8 может быть достигнуто с помощью битовых сдвигов, и реализует целый ряд Алгоритм деления.

Мой вопрос таков: могу ли я переопределить арифметические c операторы, чтобы по возможности избежать выгрузки? И, возможно, во-вторых, могу ли я определить операцию деления один раз, а затем вызвать ее несколько раз, чтобы избежать больших размеров файлов?

РЕДАКТИРОВАТЬ: Я понял, что многие проблемы, вызванные моим кодом, находятся в тип рассматриваемых переменных, так как только беззнаковое деление может иметь такой вид оптимизации. Вопросы переопределения операторов и переноса операций в отдельное единственное место остаются в силе.

...