Tornar simples int 64 bits quebraria muito código razoável?

Até recentemente, eu havia considerado a decisão da maioria dos implementadores / fornecedores de sistemas de manterint 32 bits, mesmo em máquinas de 64 bits, é uma espécie de verruga conveniente. Com os modernos tipos de tamanho fixo C99 (int32_t euint32_tetc.) a necessidade de haver um tipo inteiro padrão de cada tamanho 8, 16, 32 e 64 desaparece principalmente e parece queint poderia muito bem ser feito de 64 bits.

No entanto, a maior consequência real do tamanho da planícieint em C vem do fato de que C essencialmente não tem aritmética em menores queint tipos. Em particular, seint for maior que 32 bits, o resultado de qualquer aritméticauint32_t valores tem tiposigned int, o que é bastante perturbador.

Esse é um bom motivo para manterint permanentemente fixado em 32 bits em implementações do mundo real? Estou inclinado a dizer que sim. Parece-me que poderia haver uma enorme classe de usos deuint32_t que quebram quandoint é maior que 32 bits. Mesmo a aplicação do operador unário menos ou complementar bit a bit torna-se perigoso, a menos que você retorneuint32_t.

Obviamente, os mesmos problemas se aplicam auint16_t euint8_t nas implementações atuais, mas todo mundo parece estar ciente e acostumado a tratá-las como "menores queint"tipos.

questionAnswers(8)

yourAnswerToTheQuestion