問題タブ [pragma]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 便利だと思った#pragmaを使ってどのコードを書きましたか?
#pragma once
いつでも機能する必要性を私は理解していません#ifndef #define #endif
。
他のファイルとリンクするための使用法を見てきました#pragma comment
が、コンパイラ設定のセットアップはIDEを使用した方が簡単でした。
それの他のいくつかの使用法#pragma
は有用ですが、広く知られていませんか?
編集:
#pragmaディレクティブのリストの直後ではありません。おそらく、この質問をもう少し言い換える必要があります。
一緒に書いたコードは#pragma
どれが役に立ちましたか?
。
一目で答え:
回答および/またはコメントしてくれたすべての人に感謝します。これが私が有用だと思ったいくつかの入力の要約です:
- Jasonは、大規模システムでのコンパイルを高速化すること
#pragma once
を提案しました。#ifndef #define #endif
スティーブは飛び込んでこれをサポートしました。 - 280Z28は一歩進んで、MSVCに適していると述べました
#pragma once
が、GCCコンパイラはに最適化されてい#ifndef #define #endif
ます。したがって、両方ではなく、どちらかを使用する必要があります。 - Jason
#pragma pack
はバイナリ互換性についても言及しましたが、移植性とエンディアンの問題が発生する可能性があるため、Cliffordはこれに反対しています。Evanはサンプルコードを提供し、Dennisは、ほとんどのコンパイラが整列のためにパディングを強制することを通知しました。 - sblomは
#pragma warning
、実際の問題を切り分け、すでに確認されている警告を無効にするために使用することを提案しました。 - Evanは
#pragma comment(lib, header)
、IDEを再設定せずに、プロジェクト間で簡単に移植できるようにすることを提案しました。もちろん、これはあまり移植性がありません。 - sbiは、
#pragma message
VCユーザーが行番号情報を含むメッセージを出力するための優れたトリックを提供しました。Jamesはさらに一歩進んで、MSVCのメッセージを許可error
または照合し、エラーリストなどの適切なメッセージを表示します。warning
- Chrisは
#pragma region
、MSVCでカスタムメッセージを使用してコードを折りたたむことができるように提供しました。
おっと、待って、必要な場合を除いて#pragmasを使用しないことについて投稿したい場合はどうすればよいですか?
- クリフォードは、使用しないことについて別の観点から投稿しました
#pragma
。称賛。
SOersが回答を投稿したいという衝動を感じたら、このリストにさらに追加します。みんな、ありがとう!
c - プラグマswp、ivdep、さまざまなコンパイラでのプリフェッチのサポート
優れたAltixマニュアル(altix_single_cpu_optimization http://wwwuser.gwdg.de/~parallel/parallelrechner/altix_documentation/altix_single_cpu_optimization.pdf)で、コンパイラを最適化するためのプラグマのヒントのリストを見つけました。
これらのプラグマをサポートしているコンパイラは何ですか?そして、リンクされた最適化を実装するものは何ですか(ソフトウェアパイプラインは、低ipcおよび低regカウントプロセッサのかなり難しい最適化の1つです)?
c# - プログラムで例外の中断を有効/無効にすることはできますか?
Visual Studio 2008 のメニュー デバッグ/例外ダイアログのように、デバッグ時に例外で中断できるようにしたいのですが、デバッグしたいビットに到達する前にプログラムに多くの有効な例外があることを除きます。
毎回ダイアログを使用して手動で有効化および無効化する代わりに、 #pragma またはその他の方法で自動的に有効化および無効化して、特定のコードでのみ発生するようにすることはできますか?
visual-studio - 人々は警告 C4793: 'some_function' : ネイティブとしてコンパイルされた関数をどのように処理しますか?
"warning C4793: 'anonymous namespace'::CV_XADD' : function compiled as native"
C++ プロジェクトが CLR サポート付きでコンパイルされている場合、OpenCV ライブラリとそのヘッダー ファイルの 1 つである cxoperations.hpp を使用しています。OpenCV ヘッダー インクルードを次のように囲むことで、警告を回避できます。
しかし、実際に OpenCV を使用するプロジェクトは、CLR をサポートするようにコンパイルされたものではなく、ネイティブの C++ 静的ライブラリです。CLR サポートがあり、プラグマ ステートメントなしでこの警告を生成するプロジェクトは、単にこの静的ライブラリを使用します。そのため、特にスタティック ライブラリ全体が CLR サポートでコンパイルされていないという事実を考えると、警告がまったく作成されたことに少し驚いていますが、問題を引き起こすのはこの 1 つのヘッダーだけです。
したがって、このソリューションは私には最適ではないようです。これは、この警告を処理する方法ですか、それともより良い方法をお勧めできますか?
oracle - Oracle パッケージ本体でのプラグマの使用
function_public
Oracle パッケージと、その中の 2 つの関数 (公開関数 ( ) と非公開関数 ( ))を作成したいと考えていますfunction_private
。パブリック関数は、SQL ステートメントでプライベート関数を使用します。
プラグマがないと、コードはコンパイルされません ( PLS-00231: function 'FUNCTION_PRIVATE' may not be used in SQL
)
WNDS, WNPS
にプラグマを追加すると、コードがコンパイルされfunction_private
ます。プラグマはパッケージ宣言でのみ使用でき、パッケージ本体では使用できないように思われるため、パッケージでも宣言する必要がfunction_private
あります。
このソリューションは、私のfunction_private
公開も行います。パッケージ本体にしかない関数にプラグマを追加する解決策はありますか?
更新:疑似コードを実際の (簡略化された) 例に置き換えました。
UPDATE2 : Rob van Wijk によって提案されたコードのバグ修正。
sqlite - sqlite でプラグマを使用するのはいつですか?
プラグマはいつ使用されますか?
データベースが初めて作成されたとき、またはデータベースへの接続ごとに?
c-preprocessor - define マクロのプラグマ
プラグマステートメントを他のステートメントと一緒にマクロに埋め込む方法はありますか?
私は次のようなことを達成しようとしています:
ブースト ソリューション (ウェーブ用に保存) が存在する場合は問題ありません。
php - 応答ヘッダーに「Pragma:no-cache」を追加するとどうなりますか?(Apache、PHP)
メンテナンスを継承したウェブサイトがありますが、これは大きな混乱です。
私がしていることの1つは、パフォーマンスの向上です。Expires
特に、画像にヘッダーを追加しています。
現在、PHPファイルを介して提供される画像がいくつかあり、それらにはExpires
ヘッダーがありますが、毎回読み込まれます。
応答ヘッダーを見ると、次のことがわかります。
これは明らかに問題を説明しています。
今、私はコードベース全体を見てきましたが、どこにも「プラグマ」とは書かれていません。.htaccessにも関連するものはないようです。
これらの「プラグマ」(および「cache-control」)ヘッダーを設定する可能性のあるアイデアはありますか?また、どうすればそれを回避できますか?
push - #pragma pack(push)を無効にするものは何ですか?
#pragma pack(push、8)を使用するコードがありますが、どういうわけか効果がないようですが、この問題の原因を特定できません。
たとえば、次のコードを見てください。
これは「データサイズ:24」を返しますが、Visual Studioによって管理されている他のアプリケーションで同じコードを使用すると、「データサイズ:20」が返されます。
だから私はそれがいくつかの設定に関係していると思いますが、理解できませんでした。誰かが私にいくつかのヒントを与えることができれば、私は本当に感謝します。ありがとう。
gcc - プラグマを使用して GCC でフラグを削除する
プロジェクト内の特定のファイルのコンパイラ フラグを削除したいと考えています。を使用してこれを行う方法は#pragma
?