कंपाइलर नींद समारोह या यहां तक कि printf फ़ंक्शन के प्रोटोटाइप को कैसे जानता है, जब मैंने पहली जगह में कोई हेडर फ़ाइल शामिल नहीं की थी?हम एक संकलन समय त्रुटि क्यों नहीं प्राप्त करते हैं भले ही हम एक सी प्रोग्राम में stdio.h शामिल नहीं करते हैं?
इसके अलावा, अगर मैं sleep(1,1,"xyz")
या किसी भी मनमाने ढंग से तर्कों को निर्दिष्ट करता हूं, तो संकलक अभी भी इसे संकलित करता है। लेकिन अजीब बात यह है कि जीसीसी लिंक समय पर इस फ़ंक्शन की परिभाषा को खोजने में सक्षम है, मुझे समझ में नहीं आता कि यह कैसे संभव है, क्योंकि वास्तविक sleep()
फ़ंक्शन केवल एक ही तर्क लेता है, लेकिन हमारे कार्यक्रम ने तीन तर्कों का उल्लेख किया है।
/********************************/
int main()
{
short int i;
for(i = 0; i<5; i++)
{
printf("%d",i);`print("code sample");`
sleep(1);
}
return 0;
}
कहा जाता है कि वहाँ कॉलिंग सम्मेलन है जहां कॉल किए गए फ़ंक्शन को ढेर को साफ करने की आवश्यकता होती है, जो गलत संख्या की संख्या में नहीं कर सकती है, या ग़लत आकार के तर्क कॉलर द्वारा ढेर पर धकेल गए – nos