質問

システムの需要が一定のプリミティブに配置するポイント以内のメモリ(int値をバイトの倍数で4日のショート-ポジションバイトの倍数2。もちろん、これらを最適化することができる廃棄物の少なくともスペースパディングします。

とになるのかが記載されていないのはなぜGCCいしまうのですか?することが明白であるヒューリスティック(順序変数から最大のサイズを必要最小でも欠けていますか?は一部のコードの依存の物理的順序の構造体(は)このメソッドをオーバーライド?

私だけかもGCCではスーパーの最適化の方法でもないこうと思っていできることはあると比較的涼しい説明になってい忘).

役に立ちましたか?

解決

gccは、順番を変更要素構造体、それは、違反行為にCます。部6.7.2.1、C99の標準状態:

内構造のオブジェクトの非ビットフィールドの数ビットの分野 に居住しているアドレスの増加なければならない宣言しています。

他のヒント

構造体は使用頻度の高い表示は、包装の順にバイナリファイルフォーマットやネットワークプロトコルこのク上で稼働している場合を行った。また、異なるコンパイラを最適化と違っとリンクコードとからもう無理かもしれない。では、このメソッドは単純なが可能になる。

GCCはスマートなものを作機械コードからソースコードしかし、shiverった場合にスマートでよく再調整をして構造体がいるので、それらのデータの例書き込みできるファイルです。Structで始まる4字としては、4バイト整数でも無駄な場合は読みを他のシステムGCCが決まるべきである再配置の構造体を会員とする。

gcc SVNい構造再編の最適化-fipa-struct-reorg)が要求される全プログラム解析なくなるのではないだもののようです。

Cコンパイラでコンパイルな自動パックが構造体 だからこそ の配置問題のようなものもあります。アクセスしない単語の境界(32ビットのほとんどのCpuのために重い罰則のx86が致命的なトラップにRISC述べた。

いっさいのですが、すことができるコードを記述を頼りにして、会員のstruct.例えば、hack、多くの人にキャストポインタを構造体としての特定の分野の中にはたいへのアクセスを使用し、ポインタを演算にあります。私はこのかわいらしい危険な発想が、私見では、特にC++に力変数の宣言され、リニューアルグランドオープンする公開しているクラスから3サードパーティ製ライブラリとな公開を内封した.並べ替えの皆完全に休みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top