निम्न कोड क्यों संकलित करता है?यह कोड स्निपेट संकलित क्यों करता है?
#include <stdio.h>
int main(void) {
getchar;
}
निम्न कोड क्यों संकलित करता है?यह कोड स्निपेट संकलित क्यों करता है?
#include <stdio.h>
int main(void) {
getchar;
}
.. क्योंकि फ़ंक्शन नाम उन कार्यों, जो कर रहे हैं खुद को पूर्णांकों की तरह ज्यादा महत्व देता करने के लिए समारोह संकेत करने के लिए उपनाम हैं, तो यह अर्थ की दृष्टि से बहुत
#include <stdio.h>
int main(void) {
42;
}
यह वैध लेकिन व्यर्थ है के समान है।
और बहुत परेशान !!!! टाइपिंग, "x = getX()" के बजाय "int x = getX" काफी खुशी से काम करेगा और कुछ यादृच्छिक पता मान x में डाल देगा। –
मुझे सी से नफरत है> _ <[15 char filler] – missingfaktor
@Rahul: यह एक बहुत * बहुभुज * रवैया की तरह नहीं है! – Tarydon
इसी कारण 1;
संकलन होगा, getchar
सिर्फ एक समारोह के लिए एक पता है। परिणाम का मूल्यांकन किया जाता है, फिर त्याग दिया जाता है। भाषा विनिर्देश में, इसे "अभिव्यक्ति कथन" कहा जाता है;
सी अजीब है, यह कोड भी संकलित है, लेकिन यह सेगफाल्ट करता है जो रिकॉर्ड के लिए सी इतिहास में सबसे छोटा सीगफॉल्ट है।
main;
क्योंकि इसकी त्रुटि-मुक्त है? –
@Xinxua - +1/सहमत –
यह मूल रूप से उबलता है कि 'getchar' को मैक्रो होने की अनुमति है या नहीं। यदि ऐसा है, तो कोड सही नहीं हो सकता है। –