नमस्ते,

#define A 1+5
int a = A/A;
NSLog(@"value a %d",a);

यह मुझे दिखाता है कि परिणाम 11 . है

कृपया आप मुझे समझा सकते हैं कि यह कैसे काम करता है? मैं उन चरणों को समझना चाहता हूं जो संकलक इस परिणाम को दिखाने के लिए करता है। पहले ही, आपका बहुत धन्यवाद।

3
Moez 21 सितंबर 2018, 12:29

1 उत्तर

सबसे बढ़िया उत्तर
int a = A/A

int a = 1+5/1+5, यानी 1 + 5 + 5 में विस्तारित किया गया है जो कि 11 . है

शायद आप इसे बनाना चाहेंगे #define A (1+5)

मैक्रोज़ फ़ंक्शन नहीं हैं। वे मूल्यों की गणना नहीं करते हैं और उन्हें कोड में सम्मिलित नहीं करते हैं। जैसा लिखा है वैसा ही मैक्रो का विस्तार किया जाएगा।

और बीटीडब्ल्यू यह कंपाइलर नहीं है जो मैक्रोज़ का विस्तार करता है, यह प्रीप्रोसेसर है

5
Andrey Chernukha 21 सितंबर 2018, 12:36