preprocessor

    2

    2答えて

    私は現在、C#のANTLR4にプリプロセッサを実装しようとしていますが、これに関する情報を見つけるのにかなりの手間があります。 私はC#プロジェクトのGitHubのソースを掘りすると、本当に悲しいことに成功していたしませんでした... 私の目標は、トークン・オフセットを保持することである(したがって、その列と行は、前処理ストリームでのスローされません) おおよその例を説明:あなたは正しいドキュメン

    6

    1答えて

    私はgcc -C -x c -E test.defと、次のtest.def入力ファイルを処理した場合: #define TEST foo int TEST; を私は出力がちょうどになりたい: int foo; 代わりに私が手: # 1 "test.def" # 1 "<built-in>" # 1 "<command-line>" # 1 "test.def" int foo;

    2

    1答えて

    私は、Visual Studioでプログラミングされたコンパイラディレクティブの完全なプログラムを扱っています。 私はいくつかの変更を加えましたが、未解決の外部コンパイラ/リンカーエラーが発生しました。 これは、その特定の関数の実装を検出していないと思われるコンパイラ指令によって発生したと考えており、これを調べるために、コンパイルプロセス全体で#ifdefコンパイラ指令に従ってください。 私は既に

    0

    1答えて

    私はの埋め込みシステムをCで開発しています。#define TESTING_ENABLEDによって有効になっているターゲットプラットフォームを使わずにローカルでテストできる環境をセットアップしました。 これはまもなく拡張され、プロジェクトのすべての側面が含まれるため、各テスト定義の管理は、プラットフォームの切り替え時に面倒になる可能性があります。 私は#define directiveをメイクファ

    0

    1答えて

    私はコンパイルプロセスのさまざまな段階を読んでいました。私はリンクフェーズに達したとき、それはそれがexeファイルにするために1つに定義されたライブラリとユーザーのオブジェクトファイルをリンクすることがわかりました。しかし、前処理はすでに文#includeをその内容(すなわちprintfなどの関数の定義)に置き換えました。 私はどこかに間違っていることを知っていますが、間違って理解したことはありま

    0

    1答えて

    ##プリプロセッサディレクティブを使用して名前空間とクラス名を連結できますか? namespace ns { class A { public: void print(){ std::cout << "A" << std::endl; }; }; } #define PRINT_NS(E) ([](){ ::ns::##E e; e.print(); }()) int

    0

    1答えて

    これは非常に基本的な質問であるべきです、私はいくつかの名前を変更することによってこの状況を避けることができますが、私はここで何かが不足していると思うかもしれません。 この問題の最も簡単なコードを作成しました。 conv.h : 1 struct convpar_ { 2 int K; 3 } convpar_; test.c : 1 #include <

    2

    1答えて

    C++リフレクションメソッドを試していて、プリプロセッサマクロの理解に問題があります。たとえば、次のコードが動作します。 がheader.h: #define META_PROPERTY(NAME, TYPE, ACCESS, MIN, MAX) \ class NAME##_MetaProperty : public sge::GetSet<TYPE> \ { \ public: \

    5

    1答えて

    私はcpp foo.cとgcc -E foo.cの両方が同じ方法でソースファイルを前処理すると思っていましたが、同じファイルの出力が異なっていました。 cppため $ cat foo.c #define VARIABLE 3 #define PASTER(x,y) x ## _ ## y #define EVALUATOR(x,y) PASTER(x,y) #define NAME(fun

    2

    1答えて

    カーネルモジュールをcentos 7カーネル用にビルドしたいと思います。しかし、私はいくつかの関数プロトタイプに問題があります。そのカーネルでの違いは、3.10.0- 327.36.3.el7とkernel-3.10.0- 514.el7です。私はLinux Kernel Version Macro Definitionの使い方を知っています。しかし、カーネルパッチバージョンとlinux ditr