-PR-
解決済み

#pragma プリプロセス について

  • 暇なときにでも
  • 質問No.87947
  • 閲覧数17625
  • ありがとう数9
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 64% (37/57)

初めて質問させていただきます。
C/C++ のコードを見ていると「#pragma」という表現を見かけることがあるのですが、これはどういう働きをするものなのでしょうか?初歩的なことなんだとは思いますが、ご回答のほどよろしくお願いいたします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル12

ベストアンサー率 75% (398/526)

 #pragma(プラグマ)は、コンパイラに用意されている特殊な機能を有効にするよう指示するためのコマンドです。
(プリプロセスという言い方はありません。プリプロセッサディレクティブと言います。)
 通常このような機能は、コンパイラを起動する際にコマンドラインからオプションとして指定するのですが、これをソースコード内から指示することができます。
(統合開発環境などでは、このオプションを指示するための画面があったりもしますが。)

 で、この「特殊な機能」というのは何なのかというと、これが結構曲者で、処理系(コンパイラ)によって機能も指定方法もマチマチなため、「こういう機能があります」とは言い切れないんです。。。
 そんな訳で一般的なC/C++について書かれた本で、処理系に依存する#pragmaを、大々的に取り上げた物を見たことがありません。

 じゃあこれを使いこなすにはどうしたらよいかというと、、、そのコンパイラに付属しているハズのマニュアルを読むしかないですね。
 頑張ってください。
補足コメント
kigin

お礼率 64% (37/57)

ちなみに現在使用しているコンパイラは、CAD-UL社のx86クロスコンパイラです。
投稿日時 - 2001-06-11 14:08:35
お礼コメント
kigin

お礼率 64% (37/57)

ご回答ありがとうございます。
>で、この「特殊な機能」というのは何なのかというと、これが結構曲者で、
>処理系(コンパイラ)によって機能も指定方法もマチマチなため、・・・

つまり、コンパイラによって方言があるということですね。

leaz024 さんの仰ることから判断すると、#pragma で宣言される引数については、コンパイル時に指定することでも対応することができる、ということですね。
ありがとうございます。これを踏まえまして再度確認してみます。
投稿日時 - 2001-06-11 14:06:56
関連するQ&A
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル8

ベストアンサー率 25% (13/52)

プラグマは、コンパイラーに対して、定義されている命令です。 詳しくは参考URLをご覧ください。 ...続きを読む
プラグマは、コンパイラーに対して、定義されている命令です。
詳しくは参考URLをご覧ください。
お礼コメント
kigin

お礼率 64% (37/57)

ありがとうございます。
参考にさせていただきます。
投稿日時 - 2001-06-11 13:44:48


  • 回答No.2
レベル13

ベストアンサー率 18% (351/1917)

初歩的な事ではないので、 もう少し勉強してからでも良いのではないでしょうか? #が付いているのはプリプロセッサだと思います。 ...続きを読む
初歩的な事ではないので、
もう少し勉強してからでも良いのではないでしょうか?

#が付いているのはプリプロセッサだと思います。
お礼コメント
kigin

お礼率 64% (37/57)

ご回答ありがとうございます。
もっと勉強します。
投稿日時 - 2001-06-11 13:45:58
  • 回答No.3
レベル11

ベストアンサー率 29% (114/390)

「#pragma」はコンパイラ毎に定義されている命令を記述するプリプロセッサ です。多くのコンパイラでは、コマンドライン引数で定義するオプションを 「#pragma」で記述することができます。 そのような性格のものですから、ある程度プログラミングの知識のある人が使 うものばかりです。 ちなみに「#pragma」という記述だけでは動作はわかりません。 「#pragma」のすぐ後ろにあるコ ...続きを読む
「#pragma」はコンパイラ毎に定義されている命令を記述するプリプロセッサ
です。多くのコンパイラでは、コマンドライン引数で定義するオプションを
「#pragma」で記述することができます。

そのような性格のものですから、ある程度プログラミングの知識のある人が使
うものばかりです。

ちなみに「#pragma」という記述だけでは動作はわかりません。
「#pragma」のすぐ後ろにあるコマンドが実動作を示しています。
お礼コメント
kigin

お礼率 64% (37/57)

ご回答ありがとうございます。
>ちなみに「#pragma」という記述だけでは動作はわかりません。
>「#pragma」のすぐ後ろにあるコマンドが実動作を示しています。
アセンブラ定義の割込みルーチンが書かれていたようなきがします。
確認してみます。
投稿日時 - 2001-06-11 13:48:19
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ