問題タブ [preprocessor-directive]

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 投票する
1 に答える
477 参照

c++ - プリプロセッサ ディレクティブを使用して出力パスを定義する

次の疑似コードを使用します。

現在のプロジェクト (dll) を C:/MyBuild/mydll.dll にビルドする方法を表す場合、プリプロセッサ ディレクティブのみを使用してこれを達成するにはどうすればよいですか?

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

c++ - プリプロセッサディレクティブでテンプレートパラメータを使用しますか?

プリプロセッサディレクティブで非型定数テンプレートパラメータを使用することは可能ですか?これが私が心に留めていることです:

のようなものでこれを試してみるとBlah<Foo<0xFFFF>>、VC ++ 2010は、使用しようとしている行の一致しない括弧について何か不平を言います#if。プリプロセッサはテンプレートについて何も知らないのではないかと思いますが、この種のことはそのドメインに含まれていません。何を言います?

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

iphone - Objective-Cプリプロセッサディレクティブ

プリプロセッサディレクティブ言語で次のように書くにはどうすればよいですか?

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

c# - .net でプリプロセッサ ディレクティブを使用するのはいつですか?

これは簡単な質問だと思うので、明らかな何かが欠けていると思います。私は実際にはプリプロセッサ ディレクティブを使用したことはありませんが、誰かのコードを見ていて、それは私が慣れ親しんでおくべきものだと思っていました。

だから私はここにコードがあるmsdnの例を見ました:

私の2つの質問は次のとおりです。

  • 上記の例では、なぜ DEBUG を定義しているのでしょうか? デバッグ対リリースモードでコンパイルすると設定された印象を受けましたか?
  • 「定義済み」かどうかに応じてコンソールに書き込み、コンソールに書き込む他の例を見てください。しかし、これ#define MYTESTは単に変数を使用することとどう違うのでしょうか? ここで何が欠けていますか?
0 投票する
6 に答える
7306 参照

c - -Werror を指定すると、コンパイラは #warning で停止します。これを防ぐにはどうすればよいですか?

まず、警告で停止したい。しかし、いくつかの有益なメッセージ (「戻ってきて、これを実装してください!」など) も出力したいと思います。

#info残念ながら、私のコンパイラは、#message#pragma message()などをサポートしていません。

があることは知って-Wno-error=<something>いますが、私の google-foo は弱く、 for を見つけることができないよう<something>です#warning。を試してみましたが-Wno-error=warning、「ありません-Wwarning」とだけ表示されます。「warn」も同様です。

助言がありますか?

その価値のために、私は Tensilica Xtensaコンパイラー xt-xcc を使用しています。これは GNU の派生物であるか、少なくとも GNU フロントエンドを使用しているようです。バージョン 8.0.0 です。

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

c# - .NET Framework のバージョンに依存するプリプロセッサ ディレクティブを作成できますか?

これが私がやりたいことの具体的な例です。

string.Join関数を考えてみましょう。.NET 4.0 より前のバージョンでは、オーバーロードは 2 つしかなく、どちらもstring[]パラメーターが必要でした。

.NET 4.0 の時点で、より柔軟なパラメーターの型を取る新しいオーバーロードがありますIEnumerable<string>

Join基本的に.NET 4.0関数が行うことを行う関数を含むライブラリがありますstring.Join。この関数の実装を、対象となる .NET フレームワークに依存させることができるかどうか疑問に思っていました。4.0 の場合は、単にstring.Join内部的に呼び出すことができます。3.5 以前の場合は、独自の内部実装を呼び出すことができます。

  1. この考えは理にかなっていますか?
  2. それが理にかなっている場合、それを行うための最も論理的な方法は何ですか? 4.0 よりも古い .NET バージョンを対象とする場合string.JoinIEnumerable<string>パラメーターを使用した への呼び出しはコンパイルさえされないため、プリプロセッサ ディレクティブが最も理にかなっていると想定しているだけだと思います。したがって、私が使用するアプローチは、コンパイルの前に行う必要があります。Environment.Version(たとえば、実行時にプロパティをチェックしても機能しません。)
0 投票する
3 に答える
2601 参照

c++ - プリプロセッサディレクティブ

を見ると、プリプロセッサディレクティブ#include <iostream>であると言われています。

#include--->ディレクティブ

で思うんですけど:

<iostream>--->プリプロセッサ

しかし、「プリプロセッサ」と「ディレクティブ」とはどういう意味ですか?

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

c - gccは前処理後にCコードを出力できますか?

私は、C 以外の多くの言語をサポートするための前処理ディレクティブがたくさんあると思われるオープン ソース ライブラリを使用しています。ライブラリが何をしているかを調べることができるように、前処理後にコンパイルしている C コードを確認したいと思います。 、私が書くものにもっと似ています。

gcc (または Linux で一般的に利用可能なその他のツール) はこのライブラリを読み取ることができますが、前処理が何にでも変換され、人間が読める C コードを出力できますか?

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

c# - C# プリプロセッサ ディレクティブ

C++ では、次のことができます。

さて、C# ではそれほど単純ではありません。BigEndian をテストする方法がありますが、コンパイル時に構造体を定義する方法があります。C# で同じ効果を得るにはどうすればよいでしょうか? 「BoardBig」や「BoardLittle」などのクラスを作成し、ファクトリを使用して、IsBigEndian チェックに基づいて必要なクラスを取得できると考えていました。_WIN64 チェックでは、「Position_64」や「Position_32」などのクラスを使用できます。これは良いアプローチですか?C# は #define IsBigEndian 1 などのステートメントを定義できないため、どうすればよいかわかりません。

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

c - ループの最適化

Cプログラミングでは、 #pragmaプリプロセッサ ディレクティブを使用して、ループの最適化を有効/無効にすることができます。

どのシナリオで、ループの最適化をオフにする必要がありますか?