تخطي إلى المحتوى

لا يمكن تحويل هذا النوع من الملفات في المتصفح.

┐─ تحليل الملف ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
المطور : Dennis Ritchie / ISO
الفئة : شفرة
نوع MIME : text/x-csrc
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

ما هو ملف C؟

ملفات .c تحتوي على شفرة مصدرية بلغة البرمجة C، التي أنشأها Dennis Ritchie في مختبرات بيل عام 1972 أثناء تطوير نظام التشغيل Unix. C تُعدّ “أم اللغات” الحديثة: أثّرت مباشرة في بنية C++ وJava وC# وGo وRust وعشرات اللغات الأخرى.

ما يجعل C مميزة هو أنها تعمل على مستوى قريب جداً من العتاد مع احتفاظها بقابلية القراءة البشرية. المترجم يحوّل ملف .c إلى كود آلة أصلي عبر مراحل: المعالجة المسبقة (Preprocessing) → التجميع (Compilation) → الربط (Linking). النتيجة: برنامج ثنائي يعمل مباشرة على المعالج دون وسيط JVM أو مترجم فوري.

كيفية فتح ملفات C

  • VS Code مع إضافة C/C++ (ويندوز، ماك، لينكس) — LSP كامل مع IntelliSense
  • CLion من JetBrains (ويندوز، ماك، لينكس) — بيئة تطوير C/C++ متكاملة
  • Visual Studio (ويندوز) — دعم شامل لـ C/C++ مع مُصحِّح أخطاء قوي
  • Neovim/Vim مع clangd — الخيار المفضل للمطورين المتقدمين
  • أي محرر نصوص — ملفات C نص عادي قابل للقراءة

المواصفات التقنية

الخاصيةالقيمة
نوع MIMEtext/x-csrc
نظام الأنواعثابت، ضعيف النوع نسبياً
النموذجإجرائي وهيكلي
المترجماتGCC، Clang/LLVM، MSVC، TinyCC
المعيار الحاليC17 (ISO/IEC 9899:2018)
المعيار القادمC23
إدارة الذاكرةيدوية (malloc/free)
المعالج المسبقcpp (C Preprocessor)

الاستخدامات الشائعة

  • أنظمة التشغيل: نواة Linux وFreeBSD مكتوبتان بـ C؛ ويندوز ومكOS تحتويان كميات ضخمة من كود C
  • الأنظمة المدمجة (Embedded): برمجة المتحكمات الدقيقة (Arduino، STM32، ESP32) والبرامج الثابتة
  • مكتبات النظام الأساسية: libc (glibc/musl) وOpenSSL وzlib وSQLite — الأسس التي تبنى عليها اللغات الأخرى
  • تطوير البروتوكولات: كود شبكة منخفض المستوى في الرواتر والمحولات
  • المترجمات والمفسرات: مترجم Python (CPython) ومفسر Ruby مكتوبان بـ C
  • بحوث الأداء العالي: كود HPC (High Performance Computing) في الحوسبة العلمية

مثال برنامج C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* هيكل بيانات قائمة مرتبطة */
typedef struct Node {
    int value;
    struct Node *next;
} Node;

Node* create_node(int val) {
    Node *node = malloc(sizeof(Node));
    if (node == NULL) {
        fprintf(stderr, "فشل تخصيص الذاكرة\n");
        exit(1);
    }
    node->value = val;
    node->next = NULL;
    return node;
}

int main() {
    Node *head = create_node(10);
    head->next = create_node(20);
    head->next->next = create_node(30);

    /* اجتياز القائمة */
    for (Node *curr = head; curr != NULL; curr = curr->next) {
        printf("القيمة: %d\n", curr->value);
    }

    /* تحرير الذاكرة يدوياً */
    Node *curr = head;
    while (curr != NULL) {
        Node *next = curr->next;
        free(curr);
        curr = next;
    }

    return 0;
}

أوامر الترجمة والتطوير

# ترجمة برنامج C بسيط
gcc hello.c -o hello

# ترجمة مع التحذيرات والتحسين
gcc -Wall -Wextra -O2 -o myapp main.c utils.c

# ترجمة بـ Clang
clang -Wall -o myapp main.c

# تشغيل مُصحِّح الأخطاء
gdb ./myapp

# فحص تسريب الذاكرة
valgrind --leak-check=full ./myapp

C مقابل C++ مقابل Rust مقابل Go

الميزةCC++RustGo
إدارة الذاكرة✅ يدويةيدوية/ذكية✅ نظام ملكيةتلقائية (GC)
الأداء✅ أعلى✅ عالٍ✅ عالٍعالٍ
أمان الذاكرة❌ مسؤوليتك❌ جزئي✅ مضمون✅ GC
منحنى التعلممتوسطصعبصعب جداً✅ سهل
الأنظمة المدمجة✅ الأفضلجيدجيدمحدود