タグ付けされた質問 「preprocessor」

16
Swift言語での#ifdefの置き換え
C / C ++ / Objective Cでは、コンパイラプリプロセッサを使用してマクロを定義できます。さらに、コンパイラプリプロセッサを使用して、コードの一部を含めたり除外したりできます。 #ifdef DEBUG // Debug-only code #endif Swiftにも同様のソリューションはありますか?

8
#if DEBUG vs. Conditional( "DEBUG")
大規模なプロジェクトでは、どちらを使用するのが適切で、その理由は次のとおりです。 #if DEBUG public void SetPrivateValue(int value) { ... } #endif または [System.Diagnostics.Conditional("DEBUG")] public void SetPrivateValue(int value) { ... }

9
Xcode / iOS:DEBUG / RELEASEビルドでコードが実行されているかどうかを確認する方法は?
機密のクレジットカードデータを処理するアプリを作成しています。 コードがデバッグモードで実行されている場合、このデータをコンソールに記録し、いくつかのファイルダンプを作成します。 ただし、最終的なappstoreバージョン(つまり、リリースモードで実行している場合)では、これをすべて無効にすることが重要です(セキュリティ上の問題)。 私はできる限り私の質問に答えようとします。したがって、質問は「このソリューションパスはそれを行うための正しい方法または最良の方法ですか?」になります。 // add `IS_DEBUG=1` to your debug build preprocessor settings #if( IS_DEBUG ) #define MYLog(args...) NSLog(args) #else #define MYLog(args...) #endif


30
あなたが今まで遭遇した中で最悪の実世界のマクロ/プリプロセッサの乱用は何ですか?
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 これまでに遭遇した中で最悪の 現実のマクロ/プリプロセッサの乱用は何ですか(不自然なIOCCCが* haha​​ *に回答しないでください)? 本当に面白い場合は、短いスニペットまたはストーリーを追加してください。目標は、常に「マクロを使用しない」ことを人々に教えるのではなく、何かを教えることです。 ps:以前にマクロを使用したことがありますが、通常は「実際の」ソリューションがあるときに最終的にそれらを削除します(実際のソリューションがインライン化されてマクロに似ている場合でも)。 おまけ:マクロがマクロ以外のソリューションよりも本当に優れていた例を挙げてください。 関連質問: C ++マクロはいつ有益ですか?
176 c++  c  macros  preprocessor 

30
列挙型変数を文字列に変換する方法は?
enum型の変数の値を表示するようにprintfを作成するにはどうすればよいですか?例えば: typedef enum {Linux, Apple, Windows} OS_type; OS_type myOS = Linux; そして私が必要なのは printenum(OS_type, "My OS is %s", myOS); 整数ではなく文字列「Linux」を表示する必要があります。 まず、値のインデックスが付けられた文字列の配列を作成する必要があると思います。しかし、それが最も美しい方法かどうかはわかりません。まったく可能ですか?
128 c++  c  preprocessor  ansi-c 

6
gccは前処理後にCコードを出力できますか?
C以外の多くの言語をサポートするために多くの前処理ディレクティブが含まれていると思われるオープンソースライブラリを使用しています。ライブラリが何をしているかを調査できるように、前処理後にコンパイルしているCコードを確認したいと思います。 、私が書いたものに似ています。 gcc(またはLinuxで一般的に利用可能なその他のツール)はこのライブラリを読み取ることができますが、前処理が何にでも変換され、人間が読むこともできるCコードを出力できますか?

4
Swift:プリプロセッサフ​​ラグ( `#if DEBUG`など)を使用してAPIキーを実装する方法は?
でObjective-C、(MixPanel、フラリー又はCrashlyticsように、分析パッケージをRELEASEとデバッグキーを区別するために、例えば)代替APIキーを定義する静的文字列定数を使用することが時には有用でした。 #if DEBUG static NSString *const API_KEY = @"KEY_A"; #else static NSString *const API_KEY = @"KEY_B"; #endif その後... [Analytics startSession:API_KEY]; Swiftコンパイラはプリプロセッサを使用しなくなったため、これはどのようにSwiftに変換されますか?

5
「オン」の場合にのみ実行される「デバッグのみ」のコード
デバッグ担当者が要求した場合にのみ実行されるC#の「デバッグ専用」コードを追加したいと思います。C ++では、以前は次のようなことをしていました。 void foo() { // ... #ifdef DEBUG static bool s_bDoDebugOnlyCode = false; if (s_bDoDebugOnlyCode) { // Debug only code here gets executed when the person debugging // manually sets the bool above to true. It then stays for the rest // of the session until they set it …

17
Xcode 4は静的ライブラリの依存関係からパブリックヘッダーファイルを見つけることができません
検索に役立つ代替タイトル Xcodeがヘッダーを見つけられない Xcodeに.hがありません Xcode .hファイルが見つかりません 字句またはプリプロセッサの問題ファイルが見つかりません Xcode 3からのiOSアプリケーションプロジェクトに取り組んでいます。Xcode4に移動しました。プロジェクトは多数の静的ライブラリをビルドします。 これらの静的ライブラリはパブリックヘッダーも宣言し、それらのヘッダーはアプリケーションコードで使用されます。Xcode 3.xでは、ヘッダーは(ビルドフェーズとして)にコピーさpublic headers directoryれ、アプリケーションプロジェクトではpublic headers directoryに追加されましたheaders search list。 Xcode 4では、ビルドディレクトリはに移動され~/Library/Developer/Xcode/DerivedData/my-projectます。 問題は、ヘッダーの検索設定でこの新しい場所をどのように参照するかです。のようだ: public headers directory に関連しています DerivedDataディレクトリをいますが、 headers search ディレクトリは他のもの(おそらくプロジェクトの場所)を基準にしています 依存関係としてコンパイルしようとするときに、静的ライブラリを使用するクライアントがヘッダーファイルを利用できるようにするために、Xcode 4でiOS開発用の静的ライブラリターゲットをどのように設定すればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.