2010-09-30 8 views
6

मैं कुछ कोड लिख रहा हूं जहां सरल शुद्ध कार्यों का एक गुच्छा है जिसे बहुत कुछ कहा जाता है। यह पूरी तरह से सुरक्षित है अगर इन कार्यों को कम से कम बुलाया जा सकता है।क्या जीसीसी के __attribute__ (शुद्ध) का पोर्टेबल समतुल्य है?

वर्तमान में मैं अपने संकलक के रूप में जीसीसी उपयोग कर रहा हूँ और अगर वहाँ ऐसा करने का एक पोर्टेबल तरीका है मैं सोच रहा हूँ:

शुद्ध कीवर्ड से संबंधित
int foo(int) __attribute__ ((pure)) 

जानकारी यहां पाया जा सकता: http://www.ohse.de/uwe/articles/gcc-attributes.html#func-pure

कैसे यदि शुद्ध कीवर्ड उपलब्ध नहीं है तो क्या मैं इस तरह कुछ लागू करने के बारे में जाऊंगा?

+2

शुद्ध कार्यों का विवरण मुझे कक्षा स्थिर कार्यों की याद दिलाता है। क्या वे तुलनात्मक प्रदर्शन के साथ समान तरीके से अनुकूलित किसी भी मौके से हैं? –

उत्तर

5
#ifdef __GNUC__ 
#define __pure __attribute__((pure)) 
#else 
#define __pure 
#endif 

उपयोग __pure जब आप की जरूरत है यह

+0

मुझे यह सुझाव पसंद है हालांकि मैं उम्मीद कर रहा था कि मुझे कहीं और प्रदर्शन मिल सकता है। अगर मैं इसका उपयोग नहीं करूँगा, तो मैं इसका उपयोग करूंगा। – shuttle87

+0

यदि आप उस प्रदर्शन को चाहते हैं, तो अपना कार्य ' शीर्षलेख में स्थिर इनलाइन' –

+0

क्या स्थिर इनलाइन शुद्ध विशेषता के समान अनुकूलन को समान करेगी? – shuttle87

7

नहीं, ऐसा नहीं है।

+0

:(मुझे संदेह है कि यह मामला था। – shuttle87

1

मुझे लगता है कि जिस तरह से पोर्टेबल कार्यों इनलाइन करने के लिए है और आशा है कि संकलक शेष का पता लगा होगा।

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