私が見る限り、多くの関数は固定長変数を使用しています。 これは、固定データ形式を処理する必要がある関数に実際に役立ちます。 ただし、固定長変数の乱用は、潜在的なビルドの失敗と不必要なキャストを引き起こしています。
たとえば、src / usb.cの場合:
send_recvはtxsize
とrxsize
をsize_t
rxsize
として受け入れますが、実際のコンテキストでは、これらの引数はint
またはunsigned int
にキャストする必要があります。固定長であり、それを呼び出す人は誰でも異なるタイプの引数(この場合はuint32_t
またはマジックナンバー)を提供します。 32ビットから64ビットへの意図しないキャストが呼び出しプロセスで適用されます。 また、ビルドの失敗を防ぐために、多くの明示的なキャストが必要です。
実際の使用法に応じて、固定長変数を置き換えることをお勧めします。
よりポータブルにするためにあいまいなままです。
他の人がそれを意味があると思うなら、私はそれを試してみたいと思います。
これを議事に載せてくれてありがとう。 これはコードベース全体の一般的な問題であるため、現時点では、それをすぐにv1.6.1に組み込む必要があるかどうかはわかりません。 @martonmiklosは以前、コードスタイルに関連するクリーンアップを要求しました。これをv1.6.2マイルストーンにプッシュしました。 たぶん、これはこの問題にも適した場所ですが、もう少し押し出されます。
たぶん、最初にローカルでクリーンアップを実行して、開発プロセスをフォローアップすることができます。😃
もちろん可能ですが、頻繁な変更には使用されなくなり、リリースとホットフィックスにのみ使用されるmaster
代わりに、 develop
から分岐してこの分岐を継続してください。
ILP32、LLP64、LP64の互換性に関しては、データ型long
をint32_t
に置き換えるのが良いと思いますが、将来、変換では、可能な限り固定幅の整数型に移行することを検討できます...
@chenguokai :これはあなたにお任せします。 あなたが空想し、しばらく時間があれば、あなたは貢献するかもしれません。
確かに、リリース前に。 今忙しくなっています。😔