• ベストアンサー

指定した範囲での警告をなくすには・・・

突然ですが質問です。 C++のプログラムのある範囲で警告が多発してしまいました。 プログラムは問題なく起動し実行されるのですが、コンパイルするたびに警告がたくさん出るのは見づらいのでどうにかならないでしょうか? #pragmaとか使うんでしょうか・・・ よく分からないのでどなたか回答をお願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • rigidbody
  • ベストアンサー率60% (20/33)
回答No.2

>どうにかならないでしょうか なります。最も単純なのは、コンパイラオプションで警告レベルを下げてコンパイルする事です。あまりお勧めできません。有益な警告も抑制される可能性が高い為です。 >#pragmaとか使うんでしょうか コードの塊毎に、任意の警告を抑えたい時に使います。例えばVC(MS)C++の場合、下記のような感じです。 #pragma warning( push ) // 既存の警告状態を保存 #pragma warning( disable:? ) // ?番の警告を抑制 // ここに警告抑制対象のコードがある。 // 他社製(コードを直接いじるのが好ましくない)ヘッダを#include時、警告が大量発生する事もある。 // その時は泣く泣くここに#includeする。 #pragma warning( pop ) // 保存した警告状態を復元 私はコンパイラオプションの警告レベルを最強にし、必要に応じて#pragmaで消す方法を採っています。

genki140
質問者

お礼

有効的な解決法を教えていただきありがとうございます。 教えていただいたとおり、pragmaでやってみましたところ、警告が出なくなりました。 やはり、警告を弱くするというのはほかのところの警告も出なくなってしまい不安なので、このやり方で行きたいと思います。 ありがとうございましたm(_ _)m

その他の回答 (2)

noname#15691
noname#15691
回答No.3

まず、警告の意味を調べて、出ないようにプログラムを修正するべきです。 表面上は問題なく動いていても、結果として正しく処理できていない可能性があります。 警告は「黄色信号」と同じで、無視したり強引に回避したりしてはいけません。 もし、genki140さんが技術を向上したいとお思いなのでしたら、プログラムの修正によって警告を取り除くようにしてください。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

詳しい状況が全く分かりませんが、コマンドラインコンパイラであれば、警告を表示させないようにするには、標準出力または標準エラー出力をnullファイルにリダイレクトすればよいかと思います。 それはそうと、それらの警告は無視しても差し支えないことを確認されたのでしょうか? 実際に問題があって警告が出ているのであれば、警告メッセージを抑止するのではなく、該当箇所を修正するのが筋かと思います。

関連するQ&A

  • セキュリティの警告

    こんにちは。宜しくお願いします。 顧客のサーバーにプログラムをインストールし、スタートアップで起動させようとしたところ、セキュリティの警告でいったん実行を押さないと起動しません。 この警告を出さず、そのプログラムが自動で立ち上がるようにするにはどのような設定が必要でしょうか?

  • J2SE5.0でのArrayListの警告

    JAVAを始めたばかりの、初心者です。 ArrayListを使って、簡単なプログラムを作成して、 コンパイルをしたのですが、 注: MyClass1.java の操作は、未チェックまたは安全ではありません。 注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてくださ い。 と、出ました。(一応、実行したら、動きました。) 参考書で、調べたら、J2SE5.0では、 ArrayListを使うと、この警告が出るとは、書いてあったのですが、詳しくは、載ってなくて、この警告の意味が全く分かりませんでした。 この警告の意味とはずし方を、教えてください。 お願いします。 長文で、失礼しました。

    • ベストアンサー
    • Java
  • unDonutを起動する際の警告メッセージ

    unDonutを使い始めたのですが、 起動する度にセキュリティ警告の画面がでて 『発行元を確認できませんでした』と出ます。 その都度、実行をクリックしているのですが このまま使い続けても大丈夫なのでしょうか? 大丈夫ならばこの警告を消すことはできますか? 色々調べてみたのですが、同じような質問・回答を 探し出すことができませんでした。

  • テストプログラム実行時のセキュリティ警告について

    C言語を学んでいます。 プログラムの勉強自体ではなく、 本筋とは離れたところで困っています。 些細なことなので、申し訳ないのですが・・・ ただ今、勉強として、 1.簡単なテストプログラムを書く  ↓ 2.コンパイルする  ↓ 3・実行する これをひたすら繰り返しています。 これまではなんともなかったのですが 本日、パソコンを変えセキュリティソフトも変わったところ、 3.の実行のたびに、セキュリティソフトによる 警告がでるようになりました。 今はその都度ブロックを解除しつつやっております。 テストプログラムは作成のつどわかりやすい名前にしているので セキュリティソフトの設定で、実行許可を一律に与えることは できません。 3.の実行はコマンドプロンプトからの実行なのですが これを常に許可する設定ってできないものでしょうか? ちなみにcmd.exeは「常に許可」になっています (当然だと思いますが) 環境 ・Windows7 Pro ・セキュリティソフト Norton Internet Security このようなご経験のある方、どのように対策されましたでしょうか? その都度警告を消すしかないでしょうか? できればセキュリティレベルは下げたくはないと思っています。 そのほか何か良い案がありましたら教えてください! よろしくお願いします。

  • デバッグセッションの実行可能ファイル

    Visual C++ 2008 Express EditionでC言語のプログラムをコンパイルし、エラーも警告も出ないので、デバッグ(実行)を行ったところ、 「デバッグセッションの実行可能ファイル」を選択する画面に移りましたが、何を設定したらよいのかさっぱりわかりません。 プログラムは単純なものなので、特にややこしいことはないと思うのですが・・・

  • 何も書いて無いのに警告が出るだろうか

     プログラム解析のため10個ぐらいのC言語ファイルで 出来たソフトをビルドしたのですが、次の警告が最初の ファイル以外に対して、それぞれ出ます。 >C1300 (W) Command parameter specified twice > 同じコンパイラオプションを2度以上指定しています。 >同じコンパイラオプションの中で最後に指定したものを >有効とします。  define 等が2度以上書かれているのかなと思い、あるファイル の中身を全て削除しました。中身が空なだけでファイルは消して いません。  それなのに、そのファイルに対して上の警告が出ます。  この警告は何でしょう。何も書いて無いのにこのような警告が 出るのでしょうか。  宜しくお願いします。

  • 起動のたびに警告文が出る。

    OSはWindows Meですが、起動のたびに次のような警告文が出ます。「ファイル'c:\a.tmp'が見つかりません。システムにファイルが存在するか、パスおよびファイル名が正しいか確認してください。」です。プログラムの中のスタートアップにはそれに関したものはありません。また、「ファイル名を指定して実行」からmsconfigを入力して、スタートアップの項目を見てもそれらしきものはありません。どうすれば出なくなるでしょうか。教えてください。お願いします。

  • 範囲指定

    ちゃちな質問なんですけど。 複数のものを範囲指定したい時 Windowsだったら〔Ctrl〕を押しながら目的のものをクリック、またはドラッグしていくと出来たと思うんですけど、このような機能はMacにはないんでしょうか。 また、文章を選択する時 私は、よく〔shift〕を押しながら矢印キーでカーソルを動かして選択をしているんですけど、突然それが機能しなくなる時があります。 一旦こうなると、それ以降は『〔shift〕+矢印キー』はきかなくなってしまいます。(これは範囲指定自体が出来なくなったと言うことではないんです。マウスを使えばきちんと範囲指定は出来ます。) 再起動しなければいけないほど大きな問題ではないんですけど、、キーボードを使って操作する方が楽なのでこの機能を呼び起こす方法はないでしょうか。 、、私が知らない内に何かしているのかしら。

    • ベストアンサー
    • Mac
  • 指定した範囲の反転について

    C++、Win32APIで作っています。 ウィンドウにいくつかの線を書き、その後ドラッグした範囲(四角い)の線の始めと終わりの点だけを反転させるプログラムを組みたいのですが、どのようにすればよいのでしょうか? 線を書くところまではできるのですが、ドラッグした範囲のみ反転の仕方がわかりません。 よろしくお願いします。

  • 起動するたびに次のような警告の画面ができます。

    私はジャストシステムの、TOK17を使っています。 起動するたびに次のような警告の画面ができます。 ”ブラウザが、バックグラウンドでプログラムを実行しようとしています。 この行為は、危険です。” ファイルパスの、VAT17MN.EXEまでは、たどりつくことができました。 気持ちが悪いのでこの機能を止めたいと思うのですが、 どうすればできるのでしょうか。 よろしくお願いいたします。

専門家に質問してみよう