構造体型変数のインスタンスを揮発性として宣言するだけで十分ですか(そのフィールドが再入可能コードでアクセスされる場合)、または構造の特定のフィールドを揮発性として宣言する必要がありますか?
別の言い方をすれば、以下の間の意味上の違い(もしあれば)は何ですか?
typdef struct {
uint8_t bar;
} foo_t;
volatile foo_t foo_inst;
と
typedef struct{
volatile uint8_t bar;
} foo_t;
foo_t foo_inst;
ポインタ型変数をvolatileとして宣言すると(たとえば、volatile uint8_t * foo)、fooが指すアドレスが変更される可能性があることをコンパイラに通知するだけであり、fooが指す値については何も記述しません。構造型変数に類推が当てはまるかどうかは私にはわかりません。