كيفية معرفة القيمة التي تستخدمها MSVC للماكرو المسبق

StackOverflow https://stackoverflow.com/questions/1342158

سؤال

أحاول استخدام خيار برنامج التحويل البرمجي A /D على MSVC6 لتحديد سلسلة ، ولكن هناك شيء غريب حول استخدام عروض أسعار مزدوجة حوله. لتصحيح هذه المشكلة ، سيكون من المفيد للغاية بالنسبة لي أن أكون قادرًا على رؤية القيمة المسبقة التي يستعاض عنها المعالج في الواقع إلى الكود حيث يتم توسيع الماكرو. هل هناك أي طريقة يمكنني القيام بذلك؟ حاولت إنشاء ملف إدراج مع "التجميع والمصدر" ، لكن المصدر يحتوي على اسم الماكرو الأصلي و ASM هو بعض الرطوبة غير المفهومة في هذا الخط. هل هناك طريقة للحصول على قيمة الماكرو في وقت الترجمة؟

إذا فشل ذلك (أو ربما أكثر فائدة) ، كيف يمكنني تحديد سلسلة مع خيار /D؟ يجب أن تحل محل مصدري مع عروض أسعار مزدوجة حوله ، لأنني أستخدمه كخيرية حرفية.

هل كانت مفيدة؟

المحلول

جرب أحد الخيارات التالية إلى Cl.exe:

/E preprocess to stdout
/P preprocess to file

إذا كنت تقوم ببناء Visual Studio ، فيمكنك تحديد خيارات سطر الأوامر المخصصة في أحد مربعات حوار خاصية المشروع.

نصائح أخرى

يحتوي MSVC على علامة برمجية تتيح لك رؤية ملف المصدر المعالجة مسبقًا مع توسيع جميع وحدات الماكرو ، وإزالة التعليقات ، وما إلى ذلك - وحدة الترجمة بأكملها من حيث الكود الفعلي الذي سيتم تجميعه. يجب أن يمنحك الإخراج المعالجة مسبقًا البصيرة التي تبحث عنها فيما يتعلق بتوسيع الماكرو. مزيد من المعلومات هنا.

هناك خيار للانتقال إلى المترجم (/P) وسوف تكتب إخراج المعالج المسبق إلى my_cpp_file.i حيث يمكنك النظر إليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top