क्या C99 K & R पुस्तक को पुराना बनाता है? यदि हां, तो इसके स्थान पर क्या होना चाहिए? [बन्द है]


10

C99 अभी हमारे साथ है। यह बहुत सी विशेषताओं का परिचय देता है जो K & Rs C C प्रोग्रामिंग लैंग्वेज में नहीं हैं । उनमें से कोई भी विशेष रूप से कट्टरपंथी नहीं हैं। हालांकि, यहां तक ​​कि छोटी विशेषताओं जैसे कि घोषणाओं और कोड परिवर्तन को सक्षम करने के लिए कि कोई कोड को कैसे व्यवस्थित करता है।

जबकि मैं अभी भी K & R पुस्तक को एक अमूल्य संदर्भ मानता हूं, और इसकी लेखन शैली की तरह, क्या कोई बेहतर पुस्तक है जो C99 मानक को ध्यान में रखती है? मैं K & R का तीसरा संस्करण दिल की धड़कन में खरीदूंगा, लेकिन मुझे नहीं लगता कि ऐसा होने वाला है।


वहाँ वास्तव में एक C99 अद्यतन अंग्रेजी संस्करण नहीं है? इस पुस्तक का चेक अनुवाद C99 के लिए अद्यतन किया गया है।
11मोन तोथ

@Let_Me_Be K & R पुस्तक का दूसरा संस्करण 1988 में प्रकाशित हुआ था। पुस्तक का कोई नया अंग्रेज़ी संस्करण नहीं है। यही कारण है कि संस्करण कवर एएनएसआई सी 1988 से
थॉमस ओवेन्स

कॉपीराइट / रॉयल्टी की स्थापना कैसे की जाती है, इस कारण से, K & R एक तीसरा संस्करण लिखकर कुछ भी नहीं बनाएगा, यही वजह है कि हमने अभी तक इसे नहीं देखा है।
ब्लैकजैक

@ ब्लेकजैक यह एक वास्तविक शर्म की बात है।
जस्टिन डेयरिंग

2
@Let_Me_Be - चेक अनुवाद को अंग्रेजी में वापस अनुवादित करने के लिए कितना? :-) मुझे लगता है कि यह एकमात्र तरीका हो सकता है कि हमें K & R का C99 संस्करण मिलेगा ...
voretaq7

जवाबों:


8

मैं अभी भी सुझाव देना चाहूंगा (ANSIfied का दूसरा संस्करण) K & R किसी के लिए भी जो सिर्फ C सीख रहा है और जो सीधे प्रक्रियात्मक C (माइनस ऑब्जेक्ट्स) सीखना चाहता है। मैं उस सिफारिश को दोगुना कर दूंगा, यदि वे एक दिन K & R के रूप में * NIX कर्नेल कोड को हैक करने का इरादा रखते हैं क्योंकि प्रोग्रामिंग बुक में वास्तव में "Unix Mentality" है।

एक बार जब वे सी सिंटैक्स की मूल बातें समझ गए हैं और शैली का एक उचित विचार है, तो आप उन्हें अन्य संदर्भों से परिचित करा सकते हैं जो C99 सुविधाओं के बारे में बात करते हैं और समझाते हैं कि इससे वे जो लिखते हैं उसे व्यवस्थित करने का तरीका बदल सकता है, लेकिन वे ( आम तौर पर) K & R के साथ शुरू करने से अच्छी आदतें (जैसे सामने घोषणा करना) और वे उन आदतों के विपरीत कुछ करने के पीछे क्यों इस बात का संज्ञान लेंगे - मुझे लगता है कि आप इस तरह से बेहतर प्रोग्रामर बनाते हैं।


3
घोषणा करना अपफ्रंट वास्तव में C89 शैली से विरासत में मिला बुरा व्यवहार है, चर का उपयोग करने से पहले उन्हें सही घोषित किया जाना चाहिए। उदाहरण के लिए इस प्रश्न का उत्तर
exampletienne

2
@ "Tienne "अप फ्रंट" से मेरा मतलब है "वेरिएबल्स को उस दायरे में जल्द से जल्द घोषित किया जाना चाहिए जहां उनका उपयोग किया जाएगा।" जो मूल रूप से वह है जो अन्य उत्तर की वकालत कर रहा है (या कम से कम इसके बहुत ही सरल उदाहरणों में दिखा रहा है)। मैं इस बात का अनुमोदन करता हूं कि वह जवाब क्या वकालत कर रहा है, लेकिन आप सुनिश्चित करना चाहते हैं कि नए प्रोग्रामर यह महसूस करें कि "ओह डॉरत, मुझे एक {काउंटर, टेम्प वेरिएबल, आदि} की आवश्यकता है" - मुझे अपने तर्क के बीच में ही यहां घोषित कर दूं। बैड थिंग क्योंकि ऐसा करने से पठनीयता नष्ट हो जाती है जैसे कि अन्य उत्तर बताते हैं (कम से कम IMHO ऐसा करता है)
voretaq7

2
कोई सहमति नहीं है, मैं सम्मानपूर्वक असहमत हूं कि यह एक बुरी बात है, और बहुत से लोग सोचते हैं कि तर्क के बीच में इसे घोषित करना एक अच्छी बात है, प्रोग्रामर
É

@ Aretienne वह आपकी राय है, और आप निश्चित रूप से इसके हकदार हैं, लेकिन कुंद होने के लिए कोई तरीका नहीं है जिससे आप मेरी राय बदल सकते हैं : मैं एक सनकी बूढ़ा यूनिक्स हैकर हूं और सी कोडिंग शैली बहुत धार्मिक चीज है मुझे। सौभाग्य से हम में से कोई भी कभी भी दूसरे के कोड को पढ़ने के लिए नहीं होगा :-)
voretaq7

उम्मीद है कि हम ;-)
Étienne

8

आप हारबिसन और स्टील चाहते हैं: " C: एक संदर्भ मैनुअल "

यह स्पष्ट रूप से C99 को कवर करता है और C. के अन्य स्वादों की तुलना / विरोधाभास करता है। मैंने इसे सुपर उपयोगी पाया है।


1
निष्पक्ष होने के लिए, H & S बिल्कुल वैसा ही है जैसा वह कहता है: एक संदर्भ मैनुअल, और अपने आप में एक महान शिक्षण संसाधन नहीं है जिस तरह K और R है।
जॉन बोडे

इस बात से सहमत! मुझे लगता है कि ओपी एक संदर्भ की तलाश में है, हालांकि।
एंजेलो

1

मैं किंग्स सी प्रोग्रामिंग की सिफारिश करूंगा : एक आधुनिक दृष्टिकोण । यह K & R से अधिक मोटा है, लेकिन फिर भी विशेष रूप से गद्देदार नहीं है और लेखक बताता है कि C99 के लिए नया क्या है और साथ ही साथ स्टाइल टिप्स और अन्य ऐसी चीजें भी नहीं हैं।


1
अमेज़न पर $ 95, वाह!
अर्नेस्ट फ्राइडमैन-हिल

वास्तव में आपको अपने उत्तर में इंगित करना चाहिए कि आप सी प्रोग्रामिंग का मतलब है: एक आधुनिक दृष्टिकोण (दूसरा संस्करण)। इसके अलावा, मुझे कुछ पूछना है, क्या हम एक छोटी चैट कर सकते हैं?
सूरज जैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.