Passing a FORTRAN object to C and vice versa -
मेरे पास मेरा फ़ॉर्तोरन ऑब्जेक्ट है
यह% ऑब्जेक्ट% a this% object% b यह% ऑब्जेक्ट% c
मैं इसे सी में लिखे गए कोड में देना चाहता हूं, मैं एक फोरट्रान प्रोग्रामर हूं और मुझे सी के साथ बहुत कम जोखिम मिला है। मैं Iso_c_binding
पूर्णांक और सरणियों को पार करने के लिए, लेकिन अब मुझे ऑब्जेक्ट पास करना होगा
मैं निम्नलिखित वस्तु में ऑब्जेक्ट को परिभाषित करता हूं
TYPE ऑब्जेक्ट INTEGER :: एक INTEGER :: b INTEGER :: c end TYPE ऑब्जेक्ट
आप इंटरऑपरेट करने योग्य प्रकार कर सकते हैं:
का उपयोग करें iso_c_binding प्रकार, BIND (सी): : ऑब्जेक्ट INTEGER (c_int) :: एक INTEGER (c_int) :: बी INTEGER (c_int) :: सी एंड प्रकार ऑब्जेक्ट प्रकार (वस्तु) :: ओ
मानक में प्रतिबंध हैं ऑब्जेक्ट पर उदाहरण के लिए, इसमें ऑलोकेटेबल या पॉइंटर घटकों को शामिल नहीं किया जा सकता है।
जब आप इसे एक इंटरऑपरेबल प्रक्रिया में पास करते हैं:
शून्य उप (c_object * x) {} सबस्ट्रैनेट उप (x (सी, नाम = "उप") प्रकार (ऑब्जेक्ट), आशय (अंतराल) :: एक्स एंड सबराउटिन कॉल उप (ओ)
यह एक सी स्ट्रक्चर के साथ इंटरऑपरेट है
<पूर्व> टाइपिंगफ़ाइल संरचना {int a; Int b; Int c; } C_object; आप गैर-इंटरऑपरेट करने वाले प्रकारों को सी में भी पारित कर सकते हैं, लेकिन आपको पॉइंटर्स का उपयोग करना है: सब-रूटिन सब 2 (x) बाइंड (सी, नाम = "उप") प्रकार (c_ptr), मान :: एक्स अंत सब-रूटिन कॉल उप 2 (लोक (ओ))
Comments
Post a Comment