क्या आप C भाषा सीखना चाहते हैं? संरचना, बुनियादी परिचय।7 min read

C भाषा सीखने लायक है क्योंकि यह सभी भाषाओं का आधार है। C भाषा हर जगह है, आपका मोबाइल ऑपरेटिंग सिस्टम C में लिखा गया है, 99.99% एम्बेडेड सिस्टम के कोड C में लिखा है, सभी ऑपरेटिंग सिस्टम C भाषा में लिखे गए हैं। तुम जानते हो क्यों? आश्चर्यजनक रूप से, यह बहुत शक्तिशाली भाषा है। यह ट्यूटोरियल C भाषा का एक मूल परिचय है। साथ ही, इस लेख में उत्तर के साथ बहुत सारे उपयोगी प्रश्न हैं।

To read this article in English, Click here!

C भाषा की मूल बातें

C भाषा प्रोग्रामिंग सीखने की प्रक्रिया में एक मौलिक भाषा है। सबसे बड़ी बात यह है कि C एक छोटी भाषा है, जिसमें केवल 32 अंग्रेजी शब्दों को शामिल किया जाता है, जिन्हें कीवर्ड के रूप में संदर्भित किया जाता है, इसलिए याद रखना आसान है

जरा सोचिए जो उपकरण आप अभी उपयोग कर रहे हैं, संभवतः उसकी ऑपरेटिंग सिस्टम C भाषा में लिखा है (ज्यादातर ऑपरेटिंग सिस्टम सी में लिखे गए हैं) बस इसके पावर के बारे में सोचें।

प्रोग्रामिंग युग की शुरुआत में, भाषाओं को कुछ विशिष्ट उद्देश्य के लिए डिज़ाइन किया गया था। उदाहरण के लिए, फोरट्रान (FORTRAN) (फॉर्मूला ट्रांसलेटर) मुख्य रूप से व्यावसायिक अनुप्रयोगों के लिए वैज्ञानिक अनुप्रयोगों, कोबोल (COBOL) (कॉमन बिजनेस ओरिएंटेड लैंग्वेज) में उपयोग किया जाता है। यहां से C भाषा की ओर प्राथमिक कदम डेनिस रिची द्वारा आगे रखा गया था।

जैसा कि अच्छी तरह से कहा जाता है कि,

“आवश्यकता अविष्कारों की जननी है”.

C भाषा का विकास 1970 में डेनिस रिची द्वारा बेल प्रयोगशाला में किया गया था। प्रारंभ में, इसे UNIX में प्रोग्रामिंग के लिए डिज़ाइन किया गया था लेकिन बाद में पूरे UNIX OS को C भाषा का उपयोग करके फिर से लिखा गया।


C भाषा कैसे सीखें?

  • सीखना 1-दिवसीय प्रक्रिया नहीं है, इसके लिए हमारे समर्पण और समय की पाबंदी की आवश्यकता है।
  • किसी भी चीज़ में निपुणता का आग्रह करने के लिए यह इस बात पर निर्भर करता है कि आप अपना अधिकांश समय एक दिन में कहाँ बिता रहे हैं।
  • मेरा सुझाव है कि आप इस वेबसाइट से प्रति दिन एक लेख का अध्ययन करें और असाइनमेंट पूरा करें
  • कम से कम 3 घंटे के लिए प्रोग्रामिंग करें।
  • यदि आपको कोई प्रश्न हो, तो टिप्पणी करें। मैं निश्चित रूप से जल्द ही एक ऑन-पॉइंट उत्तर दूंगा
  • सबसे उल्लेखनीय, सी एक बहुत आसान भाषा है।

C भाषा : क्या नाम के पीछे एक रहस्य है ?

  • C भाषा B भाषा से ली गई थी जिसे एटी एंड टी बेल प्रयोगशालाओं में केन थॉम्पसन द्वारा लिखा गया था।
  • B भाषा को BCPL (बेसिक कंबाइंड प्रोग्रामिंग लैंग्वेज) नामक भाषा से अपनाया गया था, जिसे मार्टिन रिचर्ड्स ने कैम्ब्रिज विश्वविद्यालय में विकसित किया था।
  • अंत में, जैसा कि हम B के बाद हमारे अंग्रेजी वर्णमाला को देखते हैं, वहाँ C आता है यही कारण है कि नाम C भाषा है।

C भाषा की संरचना

सी एक संरचना-आधारित प्रोग्रामिंग भाषा है। नीचे की छवि अपने घटकों को बहुत अच्छी तरह से प्रदर्शित करती है।

C language basic code structure including command so easy to understand

— — — — —

टिप्पणियाँ (Comments)

टिप्पणियाँ कोड में एक महत्वपूर्ण भूमिका निभाती हैं, यह कोड विश्लेषण को आसान बनाता है, त्रुटि डिबगिंग को आसान बनाता है, और यदि आप अपना लिखित कोड किसी अन्य उपयोगकर्ता को साझा कर रहे हैं तो उनके लिए यह समझना बहुत आसान होगा।

इसे ध्यान में रखो।

टिप्पणी…टिप्पणी…टिप्पणी…    |    हर समय, हर लाइन, हर जगह।

टिप्पणियाँ दो प्रकार की होती हैं।

1) एक पंक्ति टिप्पणियाँ।

// आपकी टिप्पणी

2) एकाधिक टिप्पणियाँ।

/* आपकी टिप्पणी */

— — — — —

प्रीप्रोसेसर निर्देशक (Preprocessor Directives)

प्रीप्रोसेसर निर्देशक कंपाइलर (compiler) को बताते हैं कि संकलन (compilation) से पहले कोड का यह हिस्सा प्रीप्रोसेस करें। प्रीप्रोसेसर निर्देश हमेशा ‘#’ से शुरू होते हैं।

हमेशा एक फ़ाइल की शुरुआत पर प्रीप्रोसेसर निर्देश (preprocessor directives) लिखें। यह नियम नहीं है, लेकिन कुछ संकलक (compilers) संकलन (compilation) के कुछ इनबिल्ट नियम हैं, इसलिए अच्छे अभ्यास के लिए हमेशा अपने कोड की शुरुआत पर अपने पूर्वप्रक्रमक निर्देशों (Preprocessor directives) को रखें।

उदाहरण:

#include

#define

#pragma

— — — — —

ग्लोबल वेरिएबल तथा लोकल वेरिएबल

उन वेरिएबल को मुख्य फ़ंक्शन के बाहर घोषित या परिभाषित किया जाता है जिन्हें ग्लोबल वेरिएबल के रूप में जाना जाता है। इसका मतलब यह पूरे कार्यक्रम में दिखाई देता है।

उन वेरिएबल को ब्लॉक के अंदर घोषित किया जाता है जिन्हें लोकल वेरिएबल के रूप में जाना जाता है। इसका मतलब है कि यह केवल उस ब्लॉक में दिखाई देता है।

— — — — —

फ़ंक्शन की घोषणा और फ़ंक्शन की परिभाषा

मुख्य कार्य (main function) के तहत (under) फ़ंक्शन लिखना आवश्यक नहीं है, लेकिन मुख्य के तहत फ़ंक्शन परिभाषा (Function defination) लिखना सामान्य अभ्यास है।

कोड के केवल वे ही उस फ़ंक्शन का उपयोग कर सकते हैं, जो फ़ंक्शन के नीचे लिखा गया है, अन्यथा, यह संकलन चरण (compilation stage) में एक त्रुटि (error) उत्पन्न करेगा।

इस समस्या को दूर करने के लिए बस उस फ़ंक्शन को घोषित करें (function declaration)। संकलन में, कंपाइलर सोचेंगे ओह! यह पहले से ही नीचे कहीं परिभाषित किया गया है और फिर इसके लिए दिखेगा।


मेरी एक सिफारिश

q? encoding=UTF8&MarketPlace=IN&ASIN=8183330487&ServiceVersion=20070822&ID=AsinImage&WS=1&Format= SL250 &tag=dwijmistry 21ir?t=dwijmistry 21&l=am2&o=31&a=8183330487

–  यह उपलब्ध C प्रोग्रामिंग की सभी पुस्तकों में से सर्वश्रेष्ठ पुस्तक है।

– यह एक शुरुआत के साथ-साथ उन्नत प्रोग्रामर के लिए बहुत उपयोगी साबित होगा

– मेरा सुझाव है कि आपको इस पुस्तक को पढ़ना होगा और इस वेबसाइट पर एक-एक करके सभी विषयों पर जाना होगा, क्योंकि नाम से पता चलता है कि यह सभी अवधारणाओं को बहुत गहराई से कवर करता है।

– यह खरीदने लायक है। यह डेनिस रिची जितना अच्छा है, कोई कसर नहीं छोड़ता।

 

 

 


एंबेडेड में C भाषा का उपयोग क्यों किया जाता है?

  1. जैसा कि पहले बताया गया है, C न तो निम्न-स्तरीय है और न ही उच्च-स्तरीय भाषा। आप सीपीयू के रजिस्टरों के साथ मिलकर काम कर सकते हैं। आप अपने C प्रोग्राम में असेंबली कोड एम्बेड कर सकते हैं।
  2. एंबेडेड सिस्टम जिसमें प्रोसेसर एक माइक्रोप्रोसेसर, माइक्रोकंट्रोलर, डीएसपी(DSP), डीआईपी (DIPs) और यहां तक कि एफपीजीए (FPGA) भी C भाषा के साथ प्रोग्राम किया जा सकता है।
  3. इसके अलावा, वहाँ SystemC (C का एक प्रकार) है जो VHDL और वेरिलॉग(Verilog) जैसी हार्डवेयर विवरण भाषाओं (Hardware Description Languages) को बदल सकता है।
  4. C भाषा POSIX, VTWWs, द्वारा प्रदान की गई बहुप्रोसेसरिंग (multiprocessing) और मल्टीथ्रेडिंग (multithreading) API द्वारा हार्डवेयर का अधिकतम उपयोग कर सकती है।
  5. कंप्यूटर आर्किटेक्चर के लिए C भाषा के साथ बेयर मेटल (नो ओएस)(Bare metal (No OS)) प्रोग्रामिंग संभव है। यह बेयर मेटल प्रोग्रामिंग एक कंप्यूटर आर्किटेक्चर के लिए क्रॉस-संकलन (Cross-compilation) की मदद से संभव है। उदाहरण के लिए: Arduino और अन्य डेवलपमेंट बोर्ड। बूट-लोडर विशेष आर्किटेक्चर (particular architecture) के आधार पर कोड का एक और हिस्सा है जिसे फिर से C भाषा या असेंबली में कोड किया जा सकता है।

C भाषा के बजाय एम्बेडेड सिस्टम प्रोग्रामिंग में C ++ भाषा का उपयोग क्यों नहीं किया जाता है?

C ++ भाषा एक प्रतिस्पर्धी भाषा है जो C भाषा को एम्बेडेड में स्थानापन्न (replace) कर सकती है। लेकिन C ++ भाषा के साथ मुद्दा यह है कि यह प्रोग्रामर के लिए कुशलतापूर्वक उपयोग करने के लिए अपेक्षाकृत जटिल है और कोड मेमोरी अपेक्षाकृत बड़ी है।

कभी-कभी, C प्रोग्राम की तुलना में C ++ प्रोग्राम को कुशलतापूर्वक (efficiently faster) लिखा जा सकता है।

पायथन (Python) और जावा (Java) जैसी अन्य लोकप्रिय भाषाएं इंटरप्रिटर्स (Interpreters) का उपयोग करती हैं जो जावा वर्चुअल मशीन और पायथन इंजन के लिए मेमोरी का हिस्सा हैं। वे अपेक्षाकृत बहुत धीमी गति से होते हैं (अधिकांश एल्गोरिदम (algorithms) के लिए 10x और 20x धीमे)। पायथन और जावा के लिए जस्ट-इन-टाइम (जेआईटी) (Just-in-Time (JIT)) कंपाइलर उपलब्ध हैं, लेकिन उनका उपयोग कम किया जाता है।

एआरएम वास्तुकला ( ARM architecture) में जैज़ेल तकनीक (Jazelle technology) है जो सीधे जावा बाइटकोड (Java bytecode) को निष्पादित करती है। यह एआरएम (ARM) के लिए स्वामित्व है और कुछ आधुनिक स्मार्टफ़ोन में उपयोग किया जाता है।


आरटीओएस (RTOS) में C भाषा की भूमिका

C भाषा बहुत तेज है। अधिकांश RTOS (रियल-टाइम ऑपरेटिंग सिस्टम) जो प्रचलित हैं, C भाषा के साथ कोडित (coded) हैं। FYI: IOS और Android जैसे आपके फ़ोन के OS के साथ, बेसबैंड प्रोसेसर (baseband processor) (फ़ोन कॉल और नेटवर्क ऑपरेशन) के लिए एक दूसरा OS है जो RTOS है। कई RTOS हैं जैसे VxWorks, ThreadX, QNX।, आदि।

अंतिम लेकिन कम से कम नहीं, अधिकांश सर्वर और डेटाबेस C और C ++ का उपयोग करके अनुकूलित हैं। यद्यपि वे एम्बेडेड सिस्टम में बहुत अधिक उपयोग नहीं किए जाते हैं।

C भाषा के साथ संभावनाएं अनंत हैं।


असाइनमेंट

  1. C प्रोग्रामिंग पर्यावरण की स्थापना। जैसा कि मेरी पिछली पोस्ट में दिया गया है।
  2. VIM के बारे में जानें
  3. लिनक्स कमांड और विम कमांड का अभ्यास करें | बस उसके साथ खेलो।

 

 

 

Leave a Comment