mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

そもそも組み込み系って未定義動作を無限に踏みまくっている (そして特定バージョンのコンパイラの実装の詳細に全てを頼っている) という偏見がある

偏見ではあるけど、 C のあの仕様でまともにローレベルなコード書けないでしょとも思う。未定義動作は人々が思うよりずっといろいろなところにある

らりお・ザ・何らかの🈗然㊌ソムリエ

たとえば同じ配列を指していない2つのポインタで減算を行うと未定義動作です

ARR36-C. 異なる配列を指す2つのポインタに対して減算や比較を行わない
jpcert.or.jp/sc-rules/c-arr36-

www.jpcert.or.jpARR36-C. 異なる配列を指す2つのポインタに対して減算や比較を行わない

どう足掻いても一番下のレイヤーは処理系の実装の詳細に依存するしかないでしょこれ……

まあ C があんな仕様なので仕方ないと思う一方で、そういった未定義動作への仕様以上の期待がコンパイラのアップデートや乗り替えを阻害する要因でもありそうだし、ままならない

とばいえ、低レベルでのポインタなどに対する挙動をきちんと定めたところで、たとえば OS のようにほぼ全ての権限を持っているコードとユーザランドのアプリケーションのように制約の中で動くコードでは、一般に不正とされる演算に期待される結果も当然異なるだろうし、はてさて……