トップページtech
7コメント1KB

C関数のinline展開を行なうpreprocessor

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Cの関数をインライン展開するプリプロセッサってありませんでしたっけ?
昔niftyにあった気がするんですが、webで落ちてないかな〜と思ったので。
gccのソース読んだ方がいいかな。
0002デフォルトの名無しさんNGNG
そういうのって普通コンパイラ依存の
キーワードかプラグマでやるんじゃない?
00031NGNG
プリプロセス段階で展開してくれれば、環境を選ばずに最適化される
余地があるので、需要はあると思うんですけどね。
0004デフォルトの名無しさんNGNG
そういうのはマクロでやるべきでは。

機械的にinline展開をするのはどうかと思う。
int pepepe(){ int tmp; pepepepe(&tmp); return tmp; }
という関数を
for(i=0; i<pepepe(); i++);
で展開したら文法エラーになっちゃうよ。
だから普通inlineを展開すべきかどうかは
コンパイラが判断するんだけどね。
00051NGNG
例が悪いと思います。>4
その場合は展開してくれなくても良いです。
多分pepepe内部のpepepepe(&tmp);の方は展開してくれるんでしょう。
文体も変えられるプリプロセッサならその限りではありませんが。

とりあえず、get/set程度のアクセサをマクロ使わずに安全に効率よく展開するとか、
そういった事を期待しています。
0006デフォルトの名無しさんNGNG
C99準拠処理系を待て。
0007デフォルトの名無しさんNGNG
C99待つくらいならC++使えばいいんでねーの?
■ このスレッドは過去ログ倉庫に格納されています