वीकेंड प्रोजेक्ट: C भाषा के साथ मज़े करना
- C भाषा सरल होने के साथ-साथ शक्तिशाली भी है, इसलिए इससे पूरे operating system को अपेक्षाकृत आसानी से लिखा जा सकता है
- C भाषा का संक्षिप्त syntax, Java, Go जैसी कई बाद की भाषाओं को प्रभावित करता है
- इसने code obfuscation कला के उभरने में भी योगदान दिया
IOCCC प्रतियोगिता
- IOCCC प्रतियोगिता code obfuscation का एक प्रतिनिधि उदाहरण है
- प्रतियोगिता में भेजी जाने वाली प्रविष्टियाँ अक्सर उलझाऊ preprocessor macro, अतार्किक formatting, और गैर-सहायक variable names का उपयोग करती हैं
- ऐसा code पढ़ना कठिन होता है, लेकिन C भाषा एक साथ पढ़ने में आसान और भ्रमित करने वाली दोनों हो सकती है
switch स्टेटमेंट
switch स्टेटमेंट को if स्टेटमेंट या for स्टेटमेंट की तरह braces की ज़रूरत नहीं होती
- braces के बिना इस्तेमाल करने पर इसमें केवल एक statement शामिल किया जा सकता है
switch स्टेटमेंट मूल रूप से glorified goto जैसा है
switch स्टेटमेंट के अंदर variable initialization अप्रत्याशित behavior पैदा कर सकता है
case लेबल
case लेबल का switch स्टेटमेंट ब्लॉक के सबसे ऊपर होना ज़रूरी नहीं है
- इसे
if (0) condition के साथ भी इस्तेमाल किया जा सकता है
- यह
break स्टेटमेंट के बिना भी काम कर सकता है
else और if का संयोजन
else और if का उपयोग करके switch स्टेटमेंट को बदला जा सकता है
- braces के बिना भी कई conditions को संभाला जा सकता है
GNU extension फीचर
&& operator का उपयोग करके label का address लिया जा सकता है और goto से वहाँ जाया जा सकता है
- इससे
switch स्टेटमेंट को बदला जा सकता है
for स्टेटमेंट का विकल्प
- variable declaration के भीतर label का उपयोग करके loop लागू किया जा सकता है
- यह GCC-विशेष है, लेकिन C भाषा में भी बहुत मौलिक और भ्रमित करने वाला code लिखा जा सकता है
निष्कर्ष
- C भाषा बहुत मौलिक और भ्रमित करने वाला code लिखने की संभावना देती है
- ऐसा code पढ़ना कठिन होता है, लेकिन यह C भाषा की शक्ति दिखाता है
GN⁺ की राय
- यह लेख C भाषा की मौलिकता और जटिलता को अच्छी तरह दिखाता है
- C भाषा के विविध उपयोगों की संभावनाएँ तलाशने में यह उपयोगी है
- code obfuscation जैसा इसका कलात्मक पक्ष भी दिलचस्प है
- GNU extension फीचर का उपयोग करने वाले उदाहरण बहुत अनोखे और रचनात्मक हैं
- C भाषा सीख रहे शुरुआती developers के लिए यह थोड़ा कठिन हो सकता है
अभी कोई टिप्पणी नहीं है.