2011-10-21 7 views

उत्तर

4

सी मानक किसी भी उद्देश्य के लिए उपयोगकर्ताओं द्वारा उपयोग के लिए 'एएसएम' आरक्षित करता है। इसलिए, जीसीसी उपयोगकर्ता के नाम स्थान में भागने से बचने के लिए __asm__ नोटेशन प्रदान करता है (क्योंकि डबल अंडरस्कोर से शुरू होने वाले पहचानकर्ता कार्यान्वयन के लिए आरक्षित हैं)।

डबल अंडरस्कोर के साथ नोटेशन अनजाने में है, इसलिए जीसीसी डबल अंडरस्कोर के बिना सुखद इंटरफ़ेस प्रदान करता है। लेकिन यदि आप मानक-अनुरूप संकलन मोड चालू करते हैं (जैसे -std=c99), asm विकल्प बंद है। डबल अंडरस्कोर नोटेशन के साथ लिखकर, यह हमेशा उपलब्ध है।

तो, asm पढ़ने के लिए सुखद है, लेकिन __asm__ सी मानक के अनुरूप है।

+1

क्या मानक रिजर्व 'अस्थिर 'है? –

+0

कीवर्ड 'अस्थिर' मानक, बिना शर्त के हिस्सा है। इसके विपरीत, 'asm' मानक में कोई कीवर्ड नहीं है, और कार्यान्वयन के लिए आरक्षित नामस्थान में नहीं है। मुझे नहीं पता कि '__volatile__' क्यों 'आवश्यक' या 'प्रयुक्त' है; मैंने इसे पहले असेंबलर के साथ इस्तेमाल नहीं किया था। आईपीएपैडॉप द्वारा संदर्भित जीसीसी इनलाइन असेंबली हाउटो दिखाता है कि 'asm' के साथ 'अस्थिर' का उपयोग कैसे किया जाता है। –

0

GCC Inline Assembly HOWTO से "आपने गौर हो सकता है यहाँ है कि मैं asm और __asm__ का उपयोग किया है। दोनों मान्य हैं। हम अपने कार्यक्रम में कुछ के साथ asm संघर्ष कीवर्ड अगर __asm__ उपयोग कर सकते हैं।"

संबंधित मुद्दे