問題タブ [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.
c++ - プリプロセッサ ディレクティブを使用して出力パスを定義する
次の疑似コードを使用します。
現在のプロジェクト (dll) を C:/MyBuild/mydll.dll にビルドする方法を表す場合、プリプロセッサ ディレクティブのみを使用してこれを達成するにはどうすればよいですか?
c++ - プリプロセッサディレクティブでテンプレートパラメータを使用しますか?
プリプロセッサディレクティブで非型定数テンプレートパラメータを使用することは可能ですか?これが私が心に留めていることです:
のようなものでこれを試してみるとBlah<Foo<0xFFFF>>
、VC ++ 2010は、使用しようとしている行の一致しない括弧について何か不平を言います#if
。プリプロセッサはテンプレートについて何も知らないのではないかと思いますが、この種のことはそのドメインに含まれていません。何を言います?
iphone - Objective-Cプリプロセッサディレクティブ
プリプロセッサディレクティブ言語で次のように書くにはどうすればよいですか?
c# - .net でプリプロセッサ ディレクティブを使用するのはいつですか?
これは簡単な質問だと思うので、明らかな何かが欠けていると思います。私は実際にはプリプロセッサ ディレクティブを使用したことはありませんが、誰かのコードを見ていて、それは私が慣れ親しんでおくべきものだと思っていました。
だから私はここにコードがあるmsdnの例を見ました:
私の2つの質問は次のとおりです。
- 上記の例では、なぜ DEBUG を定義しているのでしょうか? デバッグ対リリースモードでコンパイルすると設定された印象を受けましたか?
- 「定義済み」かどうかに応じてコンソールに書き込み、コンソールに書き込む他の例を見てください。しかし、これ
#define MYTEST
は単に変数を使用することとどう違うのでしょうか? ここで何が欠けていますか?
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 です。
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 以前の場合は、独自の内部実装を呼び出すことができます。
- この考えは理にかなっていますか?
- それが理にかなっている場合、それを行うための最も論理的な方法は何ですか? 4.0 よりも古い .NET バージョンを対象とする場合
string.Join
、IEnumerable<string>
パラメーターを使用した への呼び出しはコンパイルさえされないため、プリプロセッサ ディレクティブが最も理にかなっていると想定しているだけだと思います。したがって、私が使用するアプローチは、コンパイルの前に行う必要があります。Environment.Version
(たとえば、実行時にプロパティをチェックしても機能しません。)
c++ - プリプロセッサディレクティブ
を見ると、プリプロセッサディレクティブ#include <iostream>
であると言われています。
#include
--->ディレクティブ
で思うんですけど:
<iostream>
--->プリプロセッサ
しかし、「プリプロセッサ」と「ディレクティブ」とはどういう意味ですか?
c - gccは前処理後にCコードを出力できますか?
私は、C 以外の多くの言語をサポートするための前処理ディレクティブがたくさんあると思われるオープン ソース ライブラリを使用しています。ライブラリが何をしているかを調べることができるように、前処理後にコンパイルしている C コードを確認したいと思います。 、私が書くものにもっと似ています。
gcc (または Linux で一般的に利用可能なその他のツール) はこのライブラリを読み取ることができますが、前処理が何にでも変換され、人間が読める C コードを出力できますか?
c# - C# プリプロセッサ ディレクティブ
C++ では、次のことができます。
さて、C# ではそれほど単純ではありません。BigEndian をテストする方法がありますが、コンパイル時に構造体を定義する方法があります。C# で同じ効果を得るにはどうすればよいでしょうか? 「BoardBig」や「BoardLittle」などのクラスを作成し、ファクトリを使用して、IsBigEndian チェックに基づいて必要なクラスを取得できると考えていました。_WIN64 チェックでは、「Position_64」や「Position_32」などのクラスを使用できます。これは良いアプローチですか?C# は #define IsBigEndian 1 などのステートメントを定義できないため、どうすればよいかわかりません。
c - ループの最適化
Cプログラミングでは、 #pragmaプリプロセッサ ディレクティブを使用して、ループの最適化を有効/無効にすることができます。
どのシナリオで、ループの最適化をオフにする必要がありますか?