मैं सी ++ में इनलाइन फ़ंक्शन कॉल का परीक्षण कर रहा हूं।सी ++ जीसीसी का उपयोग करते हुए इनलाइन फ़ंक्शन - कॉल क्यों?
Thread model: win32
gcc version 4.3.3 (4.3.3-tdm-1 mingw32)
सी ++ प्रोग्रामिंग भाषा wirtes में Stroustrup:
इनलाइन विनिर्देशक संकलक है कि यह कोड [...] इनलाइन उत्पन्न करने के लिए के बजाय के लिए कोड नीचे बिछाने का प्रयास करना चाहिए करने के लिए एक संकेत है एक बार समारोह और फिर सामान्य फ़ंक्शन कॉल तंत्र के माध्यम से कॉल करना।
हालांकि, मुझे पता चला है कि जेनरेट कोड बस इनलाइन नहीं है। isquare फ़ंक्शन के लिए संकेत है।
alt text http://i42.tinypic.com/8ys3f4.jpg
हो रहा क्यों है? मैं इनलाइन फ़ंक्शंस का उपयोग कैसे कर सकता हूं?
संपादित करें: आदेश पंक्ति विकल्प का प्रयोग किया:
**** Build of configuration Debug for project InlineCpp ****
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\InlineCpp.o ..\src\InlineCpp.cpp
g++ -oInlineCpp.exe src\InlineCpp.o
क्या आपने ऑप्टिमाइज़ेशन स्तर पर जब कोड उत्पन्न किया है, तो क्या आपने जांच की है? साथ ही, कोड – Christoph
संकलित करते समय '-फिनलाइन-फ़ंक्शंस' पैरामीटर जोड़ने का प्रयास करें, कृपया कोड को संकलित करने के लिए जीसीसी के साथ उपयोग की जाने वाली कमांड लाइन विकल्प पोस्ट करें। (यदि आप -ओ 3 या -फिनलाइन-फ़ंक्शंस का उपयोग नहीं कर रहे हैं तो "इनलाइन" को अनदेखा करते हुए जीसीसी मुझे आश्चर्य नहीं करता है)। – timday
समस्या यह है कि -00 आप अपने कंपाइलर झंडे में हैं, इसका मतलब है ** नहीं ** अनुकूलन। इसे -O2 पर स्विच करें और इसे ठीक से रेखांकित किया जाएगा। –