autoकीवर्ड सी भाषा में बेकार है। यह इसलिए है क्योंकि सी भाषा से पहले एक बी भाषा मौजूद थी जिसमें स्थानीय चर घोषित करने के लिए वह कीवर्ड आवश्यक था। (बी को एनबी में विकसित किया गया था, जो सी बन गया)।
यहाँ B के लिए संदर्भ पुस्तिका है ।
जैसा कि आप देख सकते हैं, मैनुअल autoउपयोग किए गए उदाहरणों के साथ व्याप्त है। ऐसा इसलिए है क्योंकि कोई intकीवर्ड नहीं है । "यह एक चर की घोषणा है" कहने के लिए किसी प्रकार के कीवर्ड की आवश्यकता होती है, और यह कीवर्ड यह भी बताता है कि यह एक स्थानीय या बाहरी ( autoबनाम extrn) है। यदि आप एक या दूसरे का उपयोग नहीं करते हैं, तो आपके पास एक सिंटैक्स त्रुटि है। यह कहना है, x, y;अपने आप से एक घोषणा नहीं है, लेकिन auto x, y;है।
चूँकि B में लिखे गए कोड बेस को NB में पोर्ट किया जाना था और C को भाषा के विकसित होने के बाद, भाषा के नए संस्करणों ने कुछ पिछड़े हुए सुसंगतता के लिए कुछ सामान दिया, जिसका अनुवाद कम काम में किया गया। के मामले में auto, प्रोग्रामर को हर घटना का शिकार करने autoऔर उसे हटाने की जरूरत नहीं थी।
यह मैनुअल से स्पष्ट है कि सी में अब अश्लील "अंतर्निहित int" cruft ( सामने main() { ... }किसी के बिना लिखने में सक्षम int) भी बी से आता है। यह बी कोड का समर्थन करने के लिए एक और पिछड़ी संगतता सुविधा है। फ़ंक्शंस में बी में निर्दिष्ट रिटर्न प्रकार नहीं है क्योंकि कोई प्रकार नहीं हैं। सब कुछ एक शब्द है, जैसे कई विधानसभा भाषाओं में।
ध्यान दें कि किसी फ़ंक्शन को केवल कैसे घोषित किया जा सकता है extrn putcharऔर फिर केवल एक चीज जो इसे एक फ़ंक्शन बनाती है जो पहचानकर्ता का उपयोग करती है : इसका उपयोग फ़ंक्शन कॉल अभिव्यक्ति की तरह किया जाता है putchar(x), और यही वह संकलक को उस टाइपलेस शब्द को फ़ंक्शन पॉइंटर के रूप में व्यवहार करने के लिए कहता है।
autoजा सकता है लेकिन डिफ़ॉल्ट रूप से ऐसा नहीं होगा?