C言語なら俺に聞け(入門編)Part 102

このエントリーをはてなブックマークに追加
700 ◆QZaw55cn4c
>>675

>>645
>どんなCでもローカル変数の量で速度が変わるなんてきいたことない。
>>675
>当たり前のことが、わかっていない

当たり前というのであれば、次のCコードと、それから吐かれた .s で説明してくれないか?
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd

ローカル変数の定義数にしたがって変化するのは次の行
subl $212, %esp
の $212 の大きさだけ。この計算がオペランドの定数の大きさによって、速くなったり遅くなったりするとでもいうのか?

>>678
>そもそもローカル変数の宣言によってスタックを消費し、
>ローカル変数を宣言しすぎればスタックオーバーフローするという事がわかってないんじゃないか

速さの話から す り か え ま し た か?

>スタックサイズなんて伸縮させれば良い
i386 ならフラットなメモリ構造を捨てセグメンテーションを採用しないかぎり、それはできない。
論理アドレスがぶつかれば、そこでスタックオーバーフローだ。
そして i386 でセグメンテーションを積極的に採用した OS はないはずだ。

もっとも論理アドレス空間が 64bit になった現在、そんな心配は無用ともいえる。