Как сохранить 32-битную целочисленную переменную в чистом C на 8051 uC
Я пытаюсь написать какую-нибудь программу на 8051 ° C на C. Проблема в том, что самое длинное целое число равно 16 битам. Можно ли создать мою собственную 32-битную целочисленную переменную без знака? Конечно, он должен поддерживать все операции, такие как +, -, << и т. Д.
Если это невозможно, что является альтернативой? Для меня единственный способ, который приходит мне в голову - это иметь два 16-битных целых числа. Но в этом решении я думаю, что не могу использовать стандартные операторы. Во время всех операций я должен был помнить, как модифицировать два целых числа.
Есть ли лучший способ?
Заранее спасибо.
1 ответ
Если ваша реализация компилятора /libc соответствует C99, вы можете использовать
uint32_t
тип для представления 32-разрядных целых чисел без знака. Если это не так, вы все равно можете дать
unsigned long
попробуйте (напечатайте его sizeof, чтобы увидеть, насколько он велик).