Flow of C Program step by step - C Program कैसे compile होता है?
C

Flow of C Program step by step – C Program कैसे compile होता है?

Flow of C program: C Tutorials के इस series में आज मैं आपको बताऊंगा की एक C program कैसे create होता है और कैसे compile होता है मतलब की इस पोस्ट में मैं आपको C program के compilation step को पूरा detail में बताऊंगा|

अगर आपने कभी भी program compile और execute कराया होगा तो शायद आपने देखा होगा की program compile और execute होने के बाद .exe (executable) file बनता है जिसमें हमारा output store रहता है, जब भी हम उसको install करते हैं या फिर double click करके open करते हैं तो उसमें हमारा program का output show होता है|

क्या आपने कभी सोचा है की एक C program का exe file बनाने के लिए किस किस चीज की जरुरत पड़ती है? क्या आपने मन में कभी ऐसा सवाल आया की exe file में ही हम program क्यों नहीं लिख सकते मतलब की जब हम C program लिखते हैं तो उसका extension .c देते है बाद में वो execute होकर के exe file बन जाता है, लेकिन ऐसा क्यों नहीं होता की हम direct exe file में ही program को लिखे| इन सब topics के बारे में मैं आपको बताऊंगा|

Flow Of C program execution step by step in Hindi – C Program के compilation और execution steps

Compilation और Execution step को अच्छे से समझने के लिए सबसे पहले हम एक simple program देखेंगे उसके बाद हम image की मदद से step by step compilation और execution के step को समझेंगे|

File: first.c

#include
int main()
{
    printf("Hello! This is First C program");
    return 0;
}

Execution flow of C Program

जब भी हम C program लिखते हैं तो तो उसको हम .c extension के साथ save करते हैं| जैसे की मैंने ऊपर दिए गए program को “first.c” नाम से save किया है|

C compilation process
C compilation process

Save करने के बाद जब हम program को compile करते हैं तो वह program सबसे पहले preprocessor के पास जाता है| Program में जितने भी preprocessor directives (जैसे की “#include”) लगे हुए होते हैं उन सभी के जगह पर उस preprocessor directives का कुछ code (value) program में add हो जाता है मतलब की preprocessor directives के जगह पर उसके respective code program में add हो जाते हैं और उसके बाद एक नया file create होता है जिसका extension .i होता है|

Pre-processed program file मलतब की जो program preprocessor के द्वारा process हो चूका है उसका extension .i होता है|यह file सभी IDE और compiler में create नहीं होता है जैसे की यदि आप Code block का इस्तेमाल कर रहे हैं तो इसमें .i extension का file internally create होता है यानि की वो आपको show नहीं होगा|

अब उसके बाद यह file compiler के पास जाता है जहाँ compiler उस program file को compile करके एक नया file create करता है जिसका extension .obj या .o होता है| .obj और .o का full form object होता है|

चलिए थोडा समझ लेते हैं की compile करना क्या होता है| इससे पहले हमलोग को source code और object code के बारे में जानना होगा| Source code वैसे code को कहा जाता है जो की human readable होता है यानि की जो code human (इन्सान) के द्वारा लिखा या पढ़ा जा सकता है उसे source code कहा जाता है जबकि object code वैसे code को कहा जाता है जो computer के भाषा में लिखा हुआ होता है यानि की object code को केवल computer ही समझ सकता है| Object code 0 और 1 के form में होते हैं जहाँ 0 का मतलब होता है “false” और 1 का मतलब होता है “true“.

Source code को Object code में convert करने के process को compilation कहा जाता है| यह काम compiler के द्वारा होता है| जैसे यदि आप हिंदी जानते हैं और आपको ऐसे person से बात करना है जो की केवल English जानता है तो उसके लिए आपको एक translator की जरुरत पड़ेगी जो की Hindi language को English language में translate करेगा और English language को Hindi language में convert करेगा|

ठीक इसी प्रकार जो चीज हम लिखते हैं वो computer नहीं समझता है और जो computer लिखता है वो हम नहीं समझ सकते हैं तो इसलिए हमलोग एक translator का इस्तेमाल करते हैं जिसका नाम compiler है जो की human readable code को machine readable form में और machine readable code को human readable form में convert करता है|

अब उसके बाद program next level पर जाता है जहाँ Linker, program में libraries को add करता है| जैसे अगर program में “stdio.h” header files लगा हुआ है तो उसके file को linker libraries से उठा कर के आपके program में link करता है| चलिए थोडा सा इसको example से समझते हैं जैसे यदि आप कोई book पढ़ रहे हैं और अगर उस book में आपको कोई ऐसा word मिलता है जो की आपके समझ से बाहर है तो आप उस word के बारे में किसी दुसरे books में या इन्टरनेट पर search करते हैं और उसके बारे में समझते हैं या फिर उस word के बारे में आप कहीं लिख भी लेते हैं ठीक उसी प्रकार libraries में बहुत सारे function के declaration और definition दिए गए होते हैं और जब हम program में pre-defined function (जैसे की main() ) लिखते हैं तो उसका definition हमें libraries के अन्दर उसके respective header files में मिलता है जिसे linker हमारें program में add करता है|

अब Linker एक नया file generate करता है जिसका extension .exe होता है यानि की जो executable file होता है| अब Loader की मदद से .exe file memory में load होता है और फिर उस exe file में store output को screen पर display करता है|

Program Output
Output

Exe file में हम program क्यों नहीं लिख सकते?

अब आपके मन में एक सवाल होगा की हम .exe file में directly प्रोग्राम क्यों नहीं लिख सकते? इसका सीधा सा जवाब है की जो exe file होता है उसमें 0 और 1 के form में code store होते हैं जो की केवल machine readable code होता है|

हमने ऊपर में बताया की जो code हम लिखते हैं वो machine नहीं समझ सकता और जो machine लिखता है उसे हमलोग नहीं समझ सकते इसलिए हम directly exe file में program नहीं लिख सकते हैं|

Video tutorials credit goes to mysirg.com

Read also:

Conclusion and Final words

जब भी कोई नया person या programmer programming language सीखता है तो सबसे पहले उसे C programming सिखने को कहा जाता है क्योंकि C programming language में सभी programming language का basic होता है| जब भी कोई programming field में नए नए होते हैं तो उन्हें programming की पूरी knowledge नहीं होती है जिसके कारण वो program को अच्छे से नहीं समझ पाते हैं|

यहाँ पर बहुत ही आसान शब्दों में example के साथ सभी tutorials को समझाने की कोशिश की गयी है| मुझे उम्मीद है की अब आपको C programming के compilation and execution step को समझने में परेशानी नहीं होगी|इस पोस्ट को अपने दोस्तों के साथ जरुर शेयर करें| Thank you for visiting Guptatreepoint blog.

About the author

SUMIT KUMAR GUPTA

Hi Friends! I am Sumit Kumar Gupta, a Web developer, programmer and blogger. I love to write a blog and share our thoughts and knowledge with other peoples. I think the articles written by me will be very helpful for you. Thank you.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.