問題タブ [predefined-macro]

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.

0 投票する
3 に答える
1386 参照

c++ - linuxthreadsとnptlの特定の定義はありますか

私はプログラムを持っていますが、これはlinuxthreadsとnptlでは動作が異なる必要があります。

このライブラリには、私のプログラムで検出に使用できる定義がありますか、nptlが使用されていますか、それともlinuxthreadsが使用されていますか?

UPDATE1:ランタイムにはgetconf GLIBC_LIBPTHREADSがありますが、コンパイル時はどうなりますか?

0 投票する
2 に答える
705 参照

gcc - さまざまなSPARCプロセッサ用にgccによって事前定義されているマクロは何ですか?

さまざまなSPARCプロセッサで実行されているGCCコンパイラによって、Cプログラム用に事前定義されているマクロ。OSはLinuxです。

では、コンパイル時にUltraSPARC、SuperSPARC、Niagara、SPARC64などをどのように区別できますか。

ありがとう

0 投票する
2 に答える
452 参照

visual-studio - Visual Studio 2005 に _MSC_BUILD (vs2008 からサポート) のような事前定義されたマクロはありますか?

コンパイラのリビジョン番号を使用したいので、_MSC_BUILD (vs2008 から) のような事前定義されたマクロを使用したいと考えています。

しかし、私はvs2005でそれを見つけることができません.

ご協力ありがとうございました。

0 投票する
1 に答える
9894 参照

c++ - Code::Blocks で定義済みマクロを設定する方法

Code::Blocks のローカル インストール用に定義済みのマクロを設定する方法はありますか。

それについて詳しく説明すると、基本的に、コードを送信する場所ではなく、特定のブロックを pc でのみコンパイルしたいと考えています。これを実現する 1 つの方法は次のとおりです。

私は同じことを達成するつもりでしたが、 #define MYPC という行を含めたくないので、これを IDE のどこかに追加したいと思います。私は Visual Studio でこれを行う方法を知っており、Code::Blocks にも存在すると思います。ありがとう。

0 投票する
2 に答える
121 参照

c++ - 正しいライブラリへのリンク

ここでの私の質問は、すでにここで回答されているとは思いません。これが、定期的に維持および更新する静的ライブラリです。バージョン番号も正しく更新します。このライブラリを使用するアプリケーションは、古いライブラリや新しいライブラリではなく、まったく同じバージョンのライブラリにリンクする必要があります。私が試したことの 1 つは、ライブラリ ヘッダー ファイルで定義済みのマクロを使用し、それをアプリケーションでチェックすることでした。それは機能しましたが、その方法では正しいヘッダー ファイルしか保証できません。間違ったライブラリの場合、リンクが失敗するようなテクニックはありますか?? 質問がある程度明確であることを願っています。

ハリ

0 投票する
5 に答える
6426 参照

c++ - コンパイル時に ICC と GCC を検出する

gcc または icc を使用しているかどうかをコンパイル時に検出する方法は?

__GNUC__(私は、icc が定義していることを知るのに非常__GNUC_MINOR__に戸惑いました__GNUC_PATCHLEVEL__

0 投票する
6 に答える
55205 参照

c++ - #pragma message() を使用して、メッセージがファイル (lineno) を指すようにするにはどうすればよいですか?

「todo」項目をコードに追加するために、コンパイラ出力にメッセージを入れたいと考えています。
次のようにしたいと思います。

Visual Studio のビルド出力機能を利用して、ダブルクリックしてそれぞれの行に移動します。

しかし、__LINE__マクロは に展開されているようintで、書き込みが許可されていません

別の方法があるでしょうか?

0 投票する
3 に答える
772 参照

objective-c - 現在のセレクターに展開されるプリプロセッサーマクロはありますか?

重複の可能性:
現在のメソッドの名前を動的に取得する
Obj-Cイントロスペクション:メソッドはどのようにして自身のセレクターを参照できますか?

これはObjective-Cに適用されますが、現在のセレクターのSEL値を取得するためのプリプロセッサーマクロなどはありますか?具体的には、次のようなものを探しています。

マクロに似て__FILE__いますが、これは現在のセレクターを取得するためのものです。セレクター名が変更された場合に更新することを心配せずに、他の人に渡すのに非常に便利です。

0 投票する
2 に答える
714 参照

c - ターゲットCPUでの整列メモリ要件の検出

私は現在、ハンドヘルドポケットやセンサーからデータセンターの大型サーバーまで、幅広いマシンで動作するはずのコードを作成しようとしています。

これらのアーキテクチャ間の(多くの)違いの1つは、整列されたメモリアクセスの要件です。

「標準」のx86CPUでは、整列されたメモリアクセスは必要ありませんが、他の多くのCPUはそれを必要とし、ルールが尊重されない場合は例外を生成します。

これまで、packed属性(またはプラグマ)を使用して、危険であることがわかっている特定のデータアクセスに注意を払うようにコンパイラーに強制することでこれに対処してきました。そしてそれはうまくいきます。

問題は、コンパイラが非常に慎重であるため、プロセスで多くのパフォーマンスが失われることです。

パフォーマンスが重要であるため、厳密に調整されたCPUで特に機能するように、コードの一部を書き直すことをお勧めします。一方、このようなコードは、アラインされていないメモリアクセス(x86など)をサポートするCPUでは低速になるため、厳密にアラインされたメモリアクセスを必要とするCPUでのみ使用します。

そして今、質問:コンパイル時に、ターゲットアーキテクチャが厳密に調整されたメモリアクセスを必要とすることをどのように検出するのですか?(またはその逆)

0 投票する
7 に答える
123614 参照

c - 定義済みマクロ __DATE__ と __TIME__ を 2 つの整数として使用し、文字列化する方法は?

__ DATE __ と __ TIME __を整数として使用して、コンパイル時にコードに自動化されたバージョンを提供したいと考えています。

COMPLETE_VERSIONの文字列として取得しますconst unsigned char []

1.4.1432.2234何かを出力する必要があります。

考えられる解決策の 1 つは、 convert - date -to-unsigned-intである可能性がありますが、機能しませんでした。

コンパイル時のコンテキストではconvertint-date-and-time-string-to-just-integers-in-c を参照できますexpanssion-and-stringification-how-to-get-the-marco-name-not-its-value