मैंने देखा है कि कभी कभी, सी मैक्रो कुछ इस तरह के रूप में लिखा जाता है:`({}) पर अधिक जानकारी; सी में?
#define foo(bar) ({ ++bar; })
कुछ प्रयोग के बाद, मैं पाया है कि:
({});
संकलन होगा, लेकिन कुछ भी नहीं। (जैसा कि अपेक्षित है।);
छोड़ने से सिंटैक्स त्रुटि हो जाएगी। इसका एक दुष्प्रभाव यह सुनिश्चित कर रहा है कि foo() आपके कोड में एक फ़ंक्शन जैसा दिखता है। (हालांकि, यदि आप अर्धविराम बंद करते हैं, तो समस्या का निदान करने के लिए त्रुटि बहुत उपयोगी नहीं है!)return ({});
एक शून्य मान के बारे में शिकायत नहीं करता है, जैसे कि मैंने शून्य कार्य को उपयोग करने का प्रयास किया था।
क्या यह डेवलपर्स को अपने मैक्रोज़ में अर्धविराम जोड़ने के लिए है, या क्या इसका कोई और उद्देश्य है? मैंने Google की कोशिश की है, लेकिन यह विराम चिह्न के साथ बुरी तरह विफल रहता है। क्या इसके लिए कोई नाम है?
प्राचीन - लेकिन वाक्यविन्यास अभी भी 4.4.2 में समर्थित है। –