अंतर में GCC manuals
__attribute__ ((pure))
समझाया गया है इसका मतलब है समारोह कोई साइड इफेक्ट नहीं है और मान दिया तर्कों और वैश्विक चर की स्थिति पर निर्भर करता है। इसलिए ऑप्टिमाइज़र के लिए यह कुछ सुरक्षित कॉल करने के लिए सुरक्षित है, अगर तर्क समान हैं, और ग्लोबल्स की स्थिति कॉल के बीच में नहीं बदली है।
__attribute__ ((const))
मतलब यह है कि वापसी मान केवल तर्क के एक समारोह है, और अगर तर्क के किसी भी संकेत दिए गए हैं, तो संकेत dereferenced नहीं किया जाना चाहिए।
ए const
फ़ंक्शन हमेशा pure
होता है।
const
फ़ंक्शन के उदाहरण <math.h>
से गणितीय कार्य होगा: sqrt
, exp
, आदि (हालांकि वे गोलाई मोड के अधीन हो सकता है)।
pure
लेकिन गैर स्थिरांक फ़ंक्शन के उदाहरण strlen
रूप में इस तरह के कार्यों होगा - के रूप में यह सूचक में पारित dereferences
स्रोत
2018-01-01 15:51:07
[यह] (https://gcc.gnu.org/onlinedocs/gcc-4.0।। 0/gcc/function-Attributes.html) मदद कर सकता है। – haccks