الشكل العام للبرنامج مما يتكون أي برنامج سي؟

إن أي برنامج بلغة سي يتكون من ملف أو أكثر . وتنقسم الملفات إلى نوعين:

· :Source files

وتحتوي على شفرات البرنامج وهو الملف الذي كتبته في البرنامج الأول ويتكون من مجموعة من الدوال أحدها الدالة main التي يبدأ عندها التنفيذ. بعد كتابة هذا النوع من الملفات على محرر النصوص فإننا نختم الاسم بـ .c للدلالة على نوعه .يمكن أن يكون لدينا أكثر من source file في البرنامج الواحد وبالطبع فإن هناك طريقة ما لربطهم مع بعضهم تجدها مفصلة في الفصول اللاحقة إن شاء الله.

· Header files:

يمكن أن يحتوي البرنامج في لغة سي على أكثر من header file وقد لا يحتوي على أي منها كما أن هناك نوع من هذه الملفات تكون معرفة مسبقاً وملحقة بنظام السي مثل stdio.h و string.h و conio.h و غيرهم ويتم ربط هذا النوع من الملفات مع النوع الأول عن طريق استخدام الأمر #includeثم اسم الملف محصورا بين قوسين مثلثين < اسم الملف> . يمكنك كتابة ملفات من هذا النوع بنفسك كما سنرى لاحقاً إن شاء الله وفي هذه الحالة ستستخدم نفس الأمر #include لربط ملفك ولكنك ستكتب اسم الملف بين علامتي تنصيص عوضاً عن الأقواس المثلثة "اسم الملف ". سنتطرق لهذا النوع من الملفات بشكل مبسط في دروس لاحقة.

ما هو الشكل العام للدالة؟

كل دالة هي عبارة عن جزءين:

· Header

1. يحتوي على أي preprocessing directive وهذه ما هي إلا الجملة #include وأخواتها ومنهن #define والتي سنتعرف عليها قريباً وهي بشكل عام أي سطر يبدأ بالعلامة #.

2. يحتوي على اسم الدالة ونوعها والمتغيرات التي تقبلها .

· Body

وهو أساس كل دالة وجسمها و يحتوي على الجمل المنفذة و تعريف المتغيرات .تنتهي كل من هذه الجمل بفاصلة منقوطة. ويكون جسم الدالة محصورا بين قوسين { }.

ملاحظات عامة مهمة:

· الجملة #include تجعل ال (preprocesser) يأخذ نسخة من ال (header file) ويضعها في المكان الذي كتبت فيه هذه الجملة.إن الأقواس المثلثة حول اسم الملف تخبرنا بأن هذا الملف موجود في المكان المعتاد.ما هو هذا المكان المعتاد؟الجواب يختلف من نظام لآخر المهم أن هذا المكان لا يعنينا نحن لأن النظام هو المسؤول عن إحضاره ولكن أوردت هذه الملاحظة حتى تكون مطلعاً على ما يحدث فعلاً. أما علامات التنصيص حول اسم الملف فإنها تستخدم عندما تكتب أنت هذا الملف بنفسك .

· عند استخدامك للتعليقات أو ال(comments) في برنامجك وهي الجمل الغير مقروءة من قبل المترجم و المحصورة بين /* */ فإنك تستطيع كتابتها في أكثر من سطر أي أن تبدأ بسطر ثم يطول معك التعليق لتصل إلى السطر التالي ثم تغلق التعليق بالعلامة /* ولكن لا تستطيع استخدام تعليق داخل تعليق أي تستخدم /* */ داخل تعليق آخر.فعلى سبيل المثال:


/* this is

a comment */

/* but /*this*/one is not */