frame.cで、void *型に対するポインタ演算をしているためだ。報告しに行ったら、どうやら、gccではvoid *型へのポインタ演算は、1バイト単位での演算だとみなされるらしい。あたかもuint8_t *型であるかのように振舞う。なんて腐ったコンパイラだ。しかも言い草がこうだ。
「例えどんな単純な修正であっても、マイクロソフトの信者の要求は受けない」
お前な、Cのどの規格にも違反してるコードだぞ。しかも、そのコードを修正する前は、ちゃんとvoid *型をuint8_t *型にキャストしてから演算を行っていたのだ。何故それを見習わない。
ついでに、Cのキャストは嫌いだといったら、これまたC信者らしい意見で反論された。いわく、ugly。キャストはuglyな処理だからuglyな文法でいいのだ。そのコードを読んだものをして、なにかuglyな処理が行われていると知らしめるのが目的だ。D&Eを読め。D&Eを。
No comments:
Post a Comment
You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.