मैं subroutine में घोषित एक subroutine के लिए एक सरणी पारित करने की कोशिश कर रहा था, एक अनुमानित आकार सरणी के रूप में। वह मुझे कुछ समस्याएं दे रहा था कि मैं इसके बजाय एक पॉइंटर पास करके हल करने में सक्षम हूं।क्या पॉइंटर्स संकलक अनुकूलन को रोकते हैं?
लेकिन एक उच्च प्रतिष्ठा के साथ कुछ उपयोगकर्ता एक टिप्पणी में मुझसे कहता है:
सूचक जोड़ने से भी compilers अनुकूलक यह आज किसी भी काम करने के लिए नहीं है कि बताने का एक उचित तरीका है।
क्या कोई इस पर एक संक्षिप्त स्पष्टीकरण दे सकता है? भाषा फोरट्रान 95 है, हालांकि मुझे विश्वास है कि यह अन्य भाषाओं पर लागू होता है।
मुझे लगता है कि ओपी [इस टिप्पणी] का जिक्र कर रहा है (http://stackoverflow.com/questions/41009109/subroutine-not-returning-correct-numerical-values-in-assumed-shape-array-due-to # comment69272729_41032273)। – 4castle
यह सच है। सिम के लिए यह गारंटी देना मुश्किल है कि डेटा अनुक्रमिक है कि बिंदु अनुक्रमिक रूप से अनुक्रमणित है या नहीं। अधिकतर भाषाओं की तुलना में फोरट्रान के लिए यह अधिक सही है, क्योंकि फोर्ट्रान विशेष रूप से वैक्टर/सरणी को लक्षित कर रहा है। लेकिन कंपाइलरों की गड़बड़ी आम तौर पर एक एसिम्पटोट के पास आती है जहां असेंबली फोर्टन और सी के बीच समान हो सकती है। आम तौर पर कुछ चीजों के लिए मतलब है, और अधिक कठिन कोड के लिए अधिक काम की आवश्यकता है। – Holmz
@ 4castle में मैंने उद्देश्य पर मूल टिप्पणी का एक लिंक शामिल नहीं किया है, क्योंकि इसमें भ्रामक जानकारी शामिल है: (एक पॉइंटर का उपयोग करके) "अब आप सरणी अनुभाग पास करने में सक्षम नहीं हैं", जो गलत है। Subroutine के लिए तर्क के रूप में इसे पारित करने से पहले एक सरणी खंड में एक सूचक को असाइन करने से कुछ भी आसान नहीं है। – Mephisto