マガジンのカバー画像

C言語

63
C言語に関するあれこれ
運営しているクリエイター

#引数評価順序

C言語には仕様が明確にされていない部分がある

C言語には仕様が明確にされていない部分がある

先日来より、コンパイラ依存についてしつこく書いてきました。

実は、C言語の仕様には明確にされていない部分があります。

関数引数の評価順序

これがまさに「C言語の仕様として明確にされていない部分」にあたります。

「関数引数の評価順序」

や、あるいは英語でも

「order of evaluation function parameters」

で検索するといくつもヒットします。

曰く。

もっとみる
C言語コンパイラ依存した話の続編「gcc はどうコンパイルするのか」

C言語コンパイラ依存した話の続編「gcc はどうコンパイルするのか」

こちらの記事の続きです。

もう、いつまでやってんのよっていう感じだけど。
ようやく、 gcc です。
そして、これが gcc が出力したアセンブラです。

_main:LFB1445: .file 1 "../src/HelloWorld.cpp" .loc 1 15 0 .cfi_startproc leal 4(%esp), %ecx .cfi_def_c

もっとみる
C言語コンパイラ依存した話の続編「Visual Studio 2019 はどうコンパイルするのか」

C言語コンパイラ依存した話の続編「Visual Studio 2019 はどうコンパイルするのか」

最早、毒食らわば皿までといった心境です。
再び、この記事の続き。

前回は clang コンパイラについて解析しました。
ならば、 Visual Studio 2019 はどうなのか。
そういうことが気になる(笑)。

今回は、その Visual Studio 2019 のお話です。

※以下、VS = Visual Studio 2019 の意。

VS が出力したアセンブラ以下が、VS が出力

もっとみる