FromNandの日記

自分的備忘録

2020-02-19から1日間の記事一覧

【main関数の前の世界】スタートアップ関数を自作してみた!

はじめに main関数の前にはスタートアップ関数という物があり、スタートアップ関数ではアプリケーションの実行のための準備がされている。 かといって、スタートアップ関数は特別なプログラムではなく、実際にアプリケーションプログラマが自作することも可…

構造体をポインタ渡し・値渡し・ポインタ返し・値返しする場合のアセンブラ出力について

ポインタ渡しとポインタ返しについては、普通の配列などと同様のコードが生成される。値渡しについては、引数の部分に構造体のサイズ分のメモリが大胆に確保される。 つまり、4byteの変数と200byteのサイズの構造体を値渡しする場合、引数のサイズはなんと20…

戻り値がvoid型である関数で「return;」を書いた場合と書かない場合の違いについて

さて、前回の「main関数の「return 0;」について逆アセンブルして考察してみた - FromNandの日記」に続いて、今回はタイトルの通りの実験を行います。 まずは、「return;」を書いた場合のソースはこちらになります。 void func(void){ return; } このプログ…

main関数の「return 0;」について逆アセンブルして考察してみた

main関数の「return 0;」は、OSにプログラムが安全に終了したことを伝えるという意味合いを持つ。 しかし実際には、main関数の「return 0;」を書いていない人もしばしば見かける。 ということで、今回は「return 0;」を書くのと書かないのとではどのような違…