Até onde posso ver, muitas funções usam variáveis de comprimento fixo. Na verdade, é útil para funções que precisam lidar com formatos de dados fixos. No entanto, o abuso de variáveis de comprimento fixo está causando falhas de construção em potencial e conversões não essenciais.
Por exemplo em src / usb.c:
send_recv aceita txsize
e rxsize
como size_t
mas no contexto real, esses argumentos devem ser convertidos em int
ou unsigned int
, sem um comprimento fixo, e quem quer que o chame fornece argumentos de um tipo diferente ( uint32_t
ou números mágicos neste caso). conversão não intencional de 32 bits para 64 bits é aplicada no processo de chamada. Além disso, para evitar uma falha de construção, muitas conversões explícitas são necessárias.
Eu sugiro substituir as variáveis de comprimento fixo de acordo com seus usos reais.
Ficar difuso para ser mais portátil.
Eu gostaria de tentar se outros acharem significativo.
Obrigado por colocar isso na agenda. Como é um problema geral em toda a base de código, não tenho certeza no momento se devemos colocar isso na v1.6.1 imediatamente. @martonmiklos solicitou anteriormente uma limpeza relacionada ao estilo do código, que empurrei para o marco v1.6.2. Talvez este seja um bom lugar para esse problema também, embora vá empurrá-lo um pouco mais para longe.
Talvez eu possa fazer uma limpeza local primeiro e acompanhar o processo de desenvolvimento.😃
Claro que você pode, mas certifique-se de ramificar de develop
e continuar seguindo este branch, em vez de master
, que não é mais usado para mudanças frequentes, mas apenas para lançamentos e hotfixes.
Com relação à compatibilidade entre ILP32, LLP64 e LP64, acho que seria uma boa ideia substituir o tipo de dados long
por int32_t
, mas se quisermos descartar surpresas no futuro relacionadas a conversão, podemos considerar mudar para tipos inteiros de largura fixa sempre que possível ...
@chenguokai : Vou deixar isso com você. Você pode contribuir, se desejar e tiver algum tempo.
Claro que vou, antes do lançamento. Estou ficando ocupado agora.😔