さまざまな組み込みシステムの開発に携わってきました。それらはすべて、 などの型にtypedef
s (または#defines
) を使用していUINT32
ます。
これは、型のサイズをプログラマーに認識させ、オーバーフローなどの可能性をより意識させるため、優れた手法です。
しかし、一部のシステムでは、コンパイラとプロセッサがプロジェクトの存続期間中変更されないことがわかっています。
では、プロジェクト固有の型を作成して適用するという決定に影響を与えるものは何でしょうか?
編集私は自分の質問の要点をなんとか失ったと思います。おそらくそれは本当に2つです。
組み込みプログラミングでは、インターフェイスに特定のサイズの型が必要になる場合があり、RAM などの限られたリソースに対処するためにも必要になる場合があります。これは避けられませんが、コンパイラからの基本的な型を使用することを選択できます。
それ以外の場合、型の重要性は低くなります。
オーバーフローが発生しないように注意する必要があり、レジスタとスタックの使用に注意する必要がある場合があります。につながる可能性がありUINT16
ますUCHAR
。UCHAR
ただし、コンパイラの「綿毛」を追加できるなどのタイプを使用します。レジスターは一般的に大きいため、一部のコンパイラーはコードを追加して、結果を強制的に型に入れる場合があります。
i++;になることができる
REG,1 を追加 AND REG、0xFFこれは不要です。
だから、私の質問は次のようになるべきだったと思います:-
組み込みソフトウェアの制約を考えると、多くの人がそれに取り組むプロジェクトに設定する最善のポリシーは何ですか - すべての人が同じレベルの経験を持つわけではありません.