VC6.0で if(0){・・・} はコンパイルされますか? – プログラミング – Home

VC6.0で if(0){・・・} は...
 
通知
すべてクリア

VC6.0で if(0){・・・} はコンパイルされますか?


シュー
 シュー
(@シュー)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

こんにちは。

VC6.0 で

if(0){
  (デバッグ文);
}

と書くとコンパイルされますか?
やっぱり、#if 0 ~ #endif でくくらないと駄目ですか?


引用解決済
トピックタグ
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

質問の意味わかりませんが~?
ご自身コンパイラ持っていないのですか
それとも何かを流用するための質問ですか


返信引用
ん
 ん
(@ん)
ゲスト
結合: 24年前
投稿: 106
 

ご自身でif(0){} のパターンと if(1){} のパターンで作成される
実行ファイルのサイズを比較してみれば一目瞭然と思いますが。


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

コンパイルはされますよ。
実行ファイルにそのコードができるかどうかはまた別問題ですけど。


返信引用
シュー
 シュー
(@シュー)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

みなさん、レスありがとうございます。

> ご自身でif(0){} のパターンと if(1){} のパターンで作成される
> 実行ファイルのサイズを比較してみれば一目瞭然と思いますが。

その通りですね。
実は単に調べるのが面倒だったもので、申し訳ないです(汗。
今やってみたところ、プログラムのサイズがいっしょだったので、
if(0)以下のコードも実行ファイルに含まれてしまうみたいですね。

gccのように、if(0){}が実行ファイルに含まれないようにする
コンパイルオプションってないんでしょうか?


返信引用
とりあえず
 とりあえず
(@とりあえず)
ゲスト
結合: 23年前
投稿: 5
 

どちらかというとリンクオプションでわ?
最適化とか・・・。 思っただけ。。


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

サイズ優先でコンパイルすれば削除されませんか?
とりあえず,Visual C++ 5.0 (SP3) (cl version 11.00.7022)では削除されましたが。

ちなみに,最適化はコンパイル時の処理です。
リンク時にすることは不可能だと思います。
#eaxの値が何に使われるのかコンパイラは知っていますがリンカは知らないですから。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました