كيف يمكنني العثور على رؤوس مكررة في حل كبير في MSVC++ 2005 أو 2008؟

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

سؤال

في Visual Studio (C++)، هل توجد طريقة للعثور بسهولة على الرؤوس المكررة التي تم تعريفها في ملفات ‎.cpp؟

أحاول أيضًا إيجاد طرق لاكتشاف هذا الموقف:

  • أ يتضمن ب يتضمن ج
  • أ يتضمن ج
  • => لا يحتاج A إلى تضمين C
هل كانت مفيدة؟

المحلول

إذا كنت تريد اكتشاف هذا الموقف، فيمكنك إضافة هذا الماكرو إلى أعلى كل ملف.استبدل A باسم الملف

#if A_H
#error "Duplicate include"
#else
#define A_H
#endif

نصائح أخرى

بشكل عام، يمكنك تمييزها بـ #pragma مرة واحدة، أو ما يعادلها من حراسة الماكرو وتتوقف عن الاهتمام بها.

إذا كنت تستخدم مترجم MS، فيمكنك وضع رسالة #pragma (IIRC، قد يكون تحذير #pragma أو خطأ #pragma بدلاً من ذلك) مع اسم ملف الرأس في أعلى كل ملف رأس ومخرجات البناء الخاصة بك سيعرض قائمة بكل ما يتم تضمينه في كل ملف تم تجميعه.

قد يعمل ذلك بشكل أفضل مع ملفات الرأس الخاصة بك، حيث لن يتم تضمين ملفات النظام.

إذا كنت تريد رؤية كافة الرؤوس المضمنة، فقم بتحرير خيارات الترجمة لتضمينها /P (المعالجة المسبقة لملف) لن يقوم ذلك بتجميع التعليمات البرمجية الخاصة بك، ولكن بدلاً من ذلك سيعيد توجيه المعالج المسبق إلى ملف، يمكنك بعد ذلك تصفحه لرؤية عبارات #include.كن على علم بأن هذه الملفات ستكون كبيرة.

يمكن أن يشير PC-Lint (وربما أدوات Lint الأخرى) إلى ملفات التضمين غير المستخدمة.

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