تخطَّ إلى المحتوى

مقدمة في لغة C: أم اللغات

الدرس 1 من 10 · C

نظام ويندوز، ولينكس، وأجزاء من أندرويد، ومحركات قواعد البيانات، وحتى برامج الغسالات والسيارات الحديثة: كثير منها مكتوب بلغة C أو بلغات بُنيت عليها. في هذا الدرس ستتعرف على هذه اللغة العريقة، ولماذا يسميها المبرمجون «أم اللغات»، وستكتب أول برنامج بها.

C لغة برمجة ابتكرها المبرمج دينيس ريتشي (Dennis Ritchie) في مختبرات Bell Labs الأمريكية في بداية السبعينيات، واستُخدمت لكتابة نظام التشغيل الشهير UNIX. ورغم أنها من أقدم اللغات المستخدمة اليوم، فإنها ما زالت من أهمها.

لماذا «أم اللغات»؟ لأن لغات كثيرة جاءت بعدها واستعارت منها طريقة الكتابة: C++‎ و C#‎ و Java و JavaScript وغيرها. فإذا تعلمت C، ستجد شكل الكود مألوفاً في كل هذه اللغات.

  • تفهم كيف يعمل الكمبيوتر من الداخل: C قريبة من «عتاد» الجهاز، فتتعلم كيف تُخزَّن البيانات في الذاكرة وكيف يتعامل البرنامج معها.
  • السرعة الفائقة: البرامج المكتوبة بـ C من أسرع البرامج على الإطلاق.
  • الأنظمة المدمجة: المتحكمات الصغيرة في الأجهزة الإلكترونية، مثل أردوينو، تُبرمج غالباً بـ C أو لغات قريبة منها.
  • أساس متين: من يتقن C يفهم أي لغة أخرى بسهولة.

تخيّل أنك تتعلم القيادة على سيارة ناقل يدوي: أصعب قليلاً في البداية، لكنك تفهم كيف تعمل السيارة فعلاً، وبعدها تقود أي سيارة أوتوماتيك بسهولة.

كيف يعمل برنامج C؟ المترجم (Compiler)

Section titled “كيف يعمل برنامج C؟ المترجم (Compiler)”

على عكس Python التي تُنفَّذ سطراً سطراً، لغة C تحتاج مترجماً (Compiler): برنامج يحوّل الكود الذي كتبته كاملاً إلى ملف تنفيذي يفهمه المعالج مباشرة.

  1. تكتب الكود في ملف بامتداد .c.
  2. المترجم يحوّله إلى ملف تنفيذي (مثل hello.exe على ويندوز).
  3. تشغّل الملف التنفيذي.

تخيّل المترجم مثل دار ترجمة تترجم كتاباً كاملاً مرة واحدة قبل طباعته. يأخذ وقتاً في البداية، لكن القارئ بعدها يقرأ بسرعة دون انتظار.

hello.c
#include <stdio.h>
int main(void) {
printf("Hello, C!\n");
return 0;
}
الناتج
Hello, C!

لنفهم كل سطر:

  • #include <stdio.h>: نضيف مكتبة الإدخال والإخراج القياسية (Standard Input Output). بدونها لا نستطيع استخدام printf. تخيّلها مثل إحضار صندوق الأدوات قبل بدء العمل.
  • int main(void): الدالة الرئيسية التي يبدأ منها البرنامج. كلمة int تعني أنها تُرجع عدداً صحيحاً.
  • { }: الأقواس المعقوفة تحدد جسم الدالة.
  • printf("..."): تطبع النص. و \n تعني «انتقل إلى سطر جديد».
  • return 0;: تُنهي البرنامج وتخبر نظام التشغيل أن كل شيء تم بنجاح. الصفر هنا يعني «لا توجد أخطاء».
  • ;: كل أمر في C ينتهي بفاصلة منقوطة.

في C يجب أن تحدد نوع كل متغير عند إنشائه:

vars.c
#include <stdio.h>
int main(void) {
int age = 14;
float price = 9.5;
printf("Age: %d\n", age);
printf("Price: %.1f\n", price);
return 0;
}
الناتج
Age: 14
Price: 9.5
  • int لعدد صحيح، و float لعدد عشري.
  • %d داخل النص مكان سيُوضع فيه عدد صحيح، و %.1f مكان لعدد عشري برقم واحد بعد العلامة.

سنتعلم الأنواع بالتفصيل في الدرس القادم.

  • بدون تثبيت: استخدم موقعاً لتشغيل الكود أونلاين، مثل المواقع التي تسمى «C Online Compiler».
  • على جهازك: ثبّت مترجم GCC: على لينكس غالباً موجود، وعلى ماك يأتي مع أدوات Xcode، وعلى ويندوز يمكن تثبيته عبر حزمة مثل MSYS2. ثم ترجم وشغّل:
نافذة طرفيّة
gcc hello.c -o hello
./hello

السطر الأول يترجم الملف hello.c وينتج ملفاً تنفيذياً اسمه hello، والثاني يشغّله.

اكتب برنامجاً بلغة C يطبع ثلاثة أسطر:

  1. اسمك بالإنجليزية.
  2. عمرك باستخدام متغير int و %d.
  3. عمرك بعد 5 سنوات بكتابة age + 5 داخل printf.
الناتج
Name: Omar
Age: 15
Age in 5 years: 20
  • نسيان الفاصلة المنقوطة: من أكثر الأخطاء شيوعاً، ويظهر خطأ مثل expected ';'.
  • نسيان #include <stdio.h>: يظهر تحذير أو خطأ لأن المترجم لا يعرف printf.
  • نسيان \n: تلتصق المخرجات ببعضها، أو بسطر الطرفية التالي.
  • تشغيل ملف .c مباشرة: يجب ترجمته أولاً، ثم تشغيل الملف التنفيذي الناتج.

سؤال

ما وظيفة المترجم (Compiler) في لغة C؟

سؤال

ماذا يعني return 0; في نهاية الدالة main؟

  • C لغة عريقة من السبعينيات، وأساس أنظمة التشغيل ولغات كثيرة جاءت بعدها.
  • تعلّمها يجعلك تفهم كيف يعمل الكمبيوتر من الداخل.
  • تحتاج مترجماً مثل GCC يحوّل الكود إلى ملف تنفيذي.
  • البرنامج يبدأ من int main(void)، و printf للطباعة، و \n لسطر جديد.
  • كل أمر ينتهي بـ ;، والمتغيرات تحتاج نوعاً مثل int و float.