دوره‌ها / آموزش برنامه‌نویسی C / شروع کار (C Get Started)

شروع کار (C Get Started)

20 دقیقه Article

شروعِ کار با C: نصبِ ابزار و اولین اجرا 🛠️💻

برایِ نوشتنِ کدهایِ C، شما به دو چیز نیاز دارید: یک ویرایشگرِ متن (Editor) و یک کامپایلر (Compiler).

۱. انتخابِ کامپایلر

  • GCC (GNU Compiler Collection): محبوب‌ترین و قدرتمندترین کامپایلرِ دنیایِ لینوکس و متن‌باز.
  • Clang: کامپایلرِ مدرن و سریع که اپل و شرکت‌هایِ بزرگ از آن استفاده می‌کنند.
  • MSVC: کامپایلرِ رسمیِ مایکروسافت برایِ ویندوز.

۲. ابزارهایِ پیشنهادی (IDE)

اگر تازه شروع کرده‌اید، VS Code به همراهِ اکستنشنِ C/C++ بهترین گزینه است. همچنین Code::Blocks یا Dev-C++ محیط‌هایِ سبک و کاملی برایِ شروع هستند.

اولین برنامه: Hello World!

بیا کدِ زیر را بررسی کنیم:

{code_block('#include <stdio.h>\n\nint main() {\n printf("Hello World!");\n return 0;\n}')}
توضیحِ خط به خط:
  • #include <stdio.h>: کتابخانه‌ای برایِ کار با ورودی و خروجی است (Standard Input Output).
  • int main(): نقطه‌یِ شروعِ هر برنامه‌ در C است. بدونِ این تابع، هیچ کدی اجرا نمی‌شود.
  • printf(): دستوری برایِ نمایشِ متن در خروجی.
  • return 0;: به سیستم‌عامل می‌گوید که برنامه با موفقیت تمام شده است.
اجرا در ترمینال: اگر از GCC استفاده می‌کنید، دستورِ زیر کدِ شما را کامپایل می‌کند: gcc mycode.c -o myprogram
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: کالبدشکافیِ اجرایِ یک برنامه C 🛠️⚙️⚡

زبانِ C زبانِ نزدیک به سخت‌افزار است. درکِ اینکه چطور کدهایِ متنیِ شما به سیگنال‌هایِ الکتریکی در CPU تبدیل می‌شوند، اولین قدم برایِ تبدیل شدن به یک مهندسِ حرفه‌ای است.

۱. خطِ لوله (Pipeline) کامپایل

فرایندِ تبدیل کدِ C به فایلِ اجرایی (Executable) چهار مرحله‌یِ حیاتی دارد:

  • پیش‌پردازش (Preprocessing): دستوراتی که با # شروع می‌شوند (مثل #include) پردازش می‌شوند. کدهایِ هدر به فایلِ اصلی چسبانده می‌شوند.
  • کامپایل (Compilation): کدهایِ سطحِ بالایِ C به زبانِ اسمبلی (Assembly) تبدیل می‌شوند که برایِ معماریِ آن CPU خاص (مثل x86 یا ARM) قابل فهم باشد.
  • اسمبلی (Assembly): کدهایِ اسمبلی به کدهایِ ماشین (Binary) تبدیل می‌شوند. نتیجه یک فایلِ .obj یا .o است.
  • لینک کردن (Linking): تمامِ فایل‌هایِ آبجکت و کتابخانه‌هایِ استاندارد (مثل stdio.h) به هم متصل می‌شوند تا یک فایلِ نهایی (مثل .exe) ساخته شود.

۲. ساختارِ حافظه در زمانِ اجرا (Runtime Memory)

وقتی برنامه‌یِ شما اجرا می‌شود، از چهار بخشِ اصلی در حافظه استفاده می‌کند:

  1. Text Segment: محلِ نگهداریِ دستوراتِ اجراییِ برنامه (کدهای ماشین).
  2. Data Segment: برایِ نگهداریِ متغیرهایِ سراسری (Global) و استاتیک.
  3. Stack: برایِ نگهداریِ متغیرهایِ محلی و پارامترهایِ توابع مدیریت می‌شود. این بخش سریع است اما فضایِ محدودی دارد.
  4. Heap: برایِ مدیریتِ حافظه‌یِ داینامیک (که با malloc رزرو می‌کنید). این بزرگترین بخشِ حافظه‌یِ در دسترس است.
نکته مهندسی: در C هیچ "Garbage Collector"ای وجود ندارد! برخلافِ پایتون یا جاوا، مدیریتِ هر بیت از حافظه بر عهده‌یِ شماست. این قدرتِ مطلق، مسئولیتِ بزرگی هم به همراه دارد (جلوگیری از Memory Leak).

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

ساختار تابع اصلی Easy
سوال تمرین

هر برنامه‌ی C باید با چه تابعی شروع شود؟ نام آن را دقیقاً چاپ کنید.

پاسخ تمرین
C
#include <stdio.h>

int main() {
  printf("main");
  return 0;
}

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.