मैं एक static inline
समारोह एक एच फाइल में परिभाषित है इनलाइन करने के लिए, और एक सी फ़ाइल में एक बिंदु पर, मैं इस तरह कार्य करने के लिए एक सूचक है, कुछ बताए हूँ:सी: सूचक समारोह
foo.h :
static inline void frobnicate(void) {
// frobs something.
}
foo.c
#include "foo.h"
void execute(void (*func)(void)) {
func();
}
void blahBlahBlah(void) {
execute(frobnicate);
}
bar.c
#include "foo.h"
// ...
frobnicate();
तो मुझे लगता है यहाँ क्या होगा कि संकलक bar.c से frobnicate
करने के लिए कॉल इनलाइन जाएगा, लेकिन foo.c में, यह वास्तव में frobnicate
लागू करने के लिए एक समारोह बनाने के लिए, इतना है कि यह एक काम हो सकता है होगा इसके लिए सूचक।
क्या कोई मेरी पुष्टि कर सकता है कि मेरी समझ सटीक है, और मुझे अन्यथा सही करें?
* आप * जेनरेट कोड पढ़कर इसे पुष्टि कर सकते हैं। मुझे नहीं लगता कि एक निर्दिष्ट तरीका है जिसमें यह * काम करने के लिए है। मैं आश्चर्यचकित नहीं होगा अगर संकलक चला जाता है "कोई इसका पता चाहता है, तो चलिए इसे इनलाइन नहीं करते हैं, फिर"। – unwind
याद रखें कि 'इनलाइन' केवल कंपाइलर –