ما هو المرجع الجيد لتوثيق أنماط استخدام الملفات ".h" في لغة C؟[ينسخ]

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

  •  05-07-2019
  •  | 
  •  

سؤال

هذا السؤال لديه بالفعل إجابة هنا:

يُظهر "واجهات C وتطبيقاتها" بعض أنماط الاستخدام المثيرة للاهتمام لهياكل البيانات، لكنني متأكد من وجود نماذج أخرى.

http://www.amazon.com/Interfaces-Implementations-Techniques-Addison-Wesley-Professional/dp/0201498413

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

المحلول

انظر إلى معيار الترميز C الخاص بمركز جودارد لرحلات الفضاء (NASA) (في هذا عنوان URL).لديها بعض المبادئ التوجيهية الجيدة والمثيرة للاهتمام.

أحد المبادئ التوجيهية المحددة، التي اعتمدتها للتعليمات البرمجية الخاصة بي، هو أن الرؤوس يجب أن تكون مستقلة بذاتها.أي أنه يجب أن تكون قادرًا على الكتابة:

#include "header.h"

ويجب أن يتم تجميع التعليمات البرمجية بشكل صحيح، مع تضمين أي رؤوس ضرورية أخرى، بغض النظر عما حدث من قبل.الطريقة البسيطة للتأكد من ذلك هي تضمين الرأس في مصدر التنفيذ - كرأس أول.إذا تم تجميع ذلك، فسيكون الرأس مستقلاً بذاته.إذا لم يتم تجميعه، قم بإصلاح الأشياء حتى يتم ذلك.بالطبع، يتطلب هذا أيضًا التأكد من أن الرؤوس غير فعالة - فهي تعمل بنفس الطريقة بغض النظر عن عدد مرات تضمينها.هناك لغة قياسية لذلك أيضًا:

#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED
...operational body of header.h...
#endif /* HEADER_H_INCLUDED */

ومن الضروري بالطبع أن يكون #define في أعلى الملف، وليس في أسفله.بخلاف ذلك، إذا كان الرأس المتضمن في هذا يتضمن أيضًا header.h، فسينتهي بك الأمر بحلقة لا نهائية - وهذا غير صحي.حتى لو قررت اتباع استراتيجية:

#ifndef HEADER_H_INCLUDED
#include "header.h"
#endif /* HEADER_H_INCLUDED */

في الكود الذي يتضمن الرأس - وهي ممارسة لا موصى به - من المهم تضمين الحراس في الرأس نفسه أيضًا.


تحديث 2011-05-01

لم يعد عنوان URL الخاص بـ GSFC أعلاه يعمل.يمكنك العثور على مزيد من المعلومات في إجابات السؤال هل يجب علي استخدام #include في الرؤوس, ، والذي يحتوي أيضًا على إشارة مرجعية لهذا السؤال.

تحديث 2012-03-24

يمكن الوصول إلى معيار الترميز NASA C المشار إليه وتنزيله عبر أرشيف الإنترنت:

http://web.archive.org/web/20090412090730/http://software.gsfc.nasa.gov/assetsbytype.cfm?TypeAsset=Standard

نصائح أخرى

صانعي الرؤوس هو نهج مثير للاهتمام:استخدم أداة لإنشاء الرؤوس.يتم استخدام Makeheaders في D.ر.هيب com.cvstrac و حفرية.

قد ترغب في إلقاء نظرة على تصميم برامج C++ واسعة النطاق بواسطة John Lakos.

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