Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम कैसे निष्पादित होता है (कंपाइलेशन प्रक्रिया)


C प्रोग्राम सोर्स कोड से एक्जीक्यूटेबल बनने तक चार मुख्य चरणों से गुजरता है।

कंपाइलेशन पाइपलाइन

Source Code (.c)
    │
    ▼
Preprocessor (cpp) → Expanded Source (.i)
    │
    ▼
Compiler (cc1) → Assembly (.s)
    │
    ▼
Assembler (as) → Object Code (.o / .obj)
    │
    ▼
Linker (ld) → Executable (a.out / .exe)
    │
    ▼
Loader → Process in RAM

विस्तृत चरण

1. प्रीप्रोसेसिंग (Preprocessing)

  • इनपुट: .c फाइल
  • आउटपुट: .i (एक्सपैंडेड सोर्स)
  • कार्य: #include फाइल्स इन्सर्ट, #define मैक्रोज़ एक्सपैंड, #if कंडीशनल कंपाइलेशन, कमेंट्स हटाना।
  • कमांड: gcc -E file.c -o file.i

2. कंपाइलेशन (Compilation)

  • इनपुट: .i
  • आउटपुट: .s (असेंबली कोड)
  • कार्य: सिंटैक्स चेक, सेमेंटिक एनालिसिस, इंटरमीडिएट रिप्रेजेंटेशन, असेंबली जनरेशन।
  • कमांड: gcc -S file.i -o file.s

3. असेंबली (Assembly)

  • इनपुट: .s
  • आउटपुट: .o / .obj (ऑब्जेक्ट फाइल, मशीन कोड)
  • कार्य: असेंबली निर्देशों को बाइनरी मशीन कोड में अनुवाद, सिंबल टेबल बनाना।
  • कमांड: gcc -c file.s -o file.o

4. लिंकिंग (Linking)

  • इनपुट: एक या अधिक .o फाइल्स + लाइब्रेरीज
  • आउटपुट: एक्जीक्यूटेबल (a.out, .exe)
  • कार्य: सिंबल रिजॉल्यूशन (फंक्शन/वेरिएबल रेफरेंसेस), एड्रेस बाइंडिंग, लाइब्रेरी कोड जोड़ना (स्टेटिक/डायनामिक)।
  • कमांड: gcc file.o -o program

5. लोडिंग (Loading) - OS द्वारा

  • एक्जीक्यूटेबल को रैम में लोड करता है।
  • डायनामिक लाइब्रेरीज लोड करता है।
  • स्टैक/हीप सेटअप, main पर कंट्रोल ट्रांसफर।

एक कमांड में

gcc program.c -o program  # सभी चरण स्वचालित

मेमोरी लेआउट (रनटाइम)

देखें लेख: "Memory Layout of C Programs" (ID: 1005077201)।

  1. iPhone पर QR कोड कैसे स्कैन करें iPhone पर QR कोड कैसे स्कैन करें

    अतीत में QR कोड की समस्या यह थी कि iPhone उन्हें अपने दम पर स्कैन नहीं कर सकते थे: आपको एक ऐप डाउनलोड करके खोलना पड़ता था, और इसकी परवाह कौन करता? लेकिन आजकल, iOS 11 में जोड़े गए एक फीचर की बदौलत, आपको बस iPhone कैमरे को ऊपर उठाकर पकड़ना है। यह इतना आसान है कि हम अंततः इनका उपयोग करना शुरू कर सकते ह

  1. विंडोज डिफेंडर त्रुटि कोड 0x80016CFA को कैसे ठीक करें विंडोज डिफेंडर त्रुटि कोड 0x80016CFA को कैसे ठीक करें

    कुछ विंडोज उपयोगकर्ता अपने ब्राउज़र में एक नया पेज खोलने का प्रयास करते समय त्रुटि कोड: 0x80016CFA के साथ लगातार पॉप-अप देखने के बाद प्रश्नों के साथ हम तक पहुंचे हैं। यह Edge, Internet Explorer, Opera, Chrome, और कुछ अन्य थर्ड-पार्टी ब्राउज़र के साथ होने की पुष्टि हुई है। यदि आप अपने डिफ़ॉल्ट ब्राउ

  1. Minecraft एरर कोड 1 समझाया गया और त्वरित समाधान गाइड Minecraft एरर कोड 1 समझाया गया और त्वरित समाधान गाइड

    अपने कंप्यूटर पर Minecraft चलाने का प्रयास करते समय कई उपयोगकर्ताओं को एक एरर का सामना करना पड़ता है। यह एरर एरर कोड 1 संदेश के साथ प्रदर्शित हो सकता है। यह Minecraft के साथ एक आम एरर है और अनुचित Java कॉन्फ़िगरेशन और अन्य सिस्टम समस्याओं के कारण हो सकता है। Minecraft Exit Code 1 एक आम समस्या है और