備忘録として書きとめておきます。 C++であれば、構造体をはじめとしたクラスを代入できないようにするのは簡単です。しかし、Cでも代入できない構造体を作りたくなることがときどきあります。特定の関数またはマクロを使ってコピーしないといけないようなものがそうで、そうした構造体を代入演算子を使って代入すると破綻してしまいます。そこで代入演算子で代入しようとするとコンパイルエラーにできる方法がほしいわけです。 次のように、幅0のビットフィールドをconst修飾子付きで持たせてあげると代入できなくなります。