タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

c言語とassemblyに関するigrepのブックマーク (1)

  • 関数の定義位置により結果が変わるコード

    はじめに 少し前、こんなポストをしました。 これは、C言語において、関数の宣言よりも前に関数呼び出しがあり、かつ引数の型が異なる場合、結果が想定の逆になってしまう、というものです。 この現象の質は、暗黙のプロトタイプ宣言とABIにあり、以下の記事で説明は尽きています。 Cの可変長引数とABIの奇妙な関係 ですが、先のポストへの反応を見ていると、いまいち何が起きているかが伝わっていないようだったので、簡単に説明しようと思います。 以下、使用コンパイラはGCC 9.3.0、環境はWSL上のUbuntu 20.04です。 現象 まず、この現象はprintf関数が質ではありません。それを見るため、以下のようなコードを書いてみましょう。

    関数の定義位置により結果が変わるコード
  • 1