ध्यान में रखते हुए VLA (चर लंबाई सरणी) मैं निम्नलिखित समस्या पर अपनी राय पूछना चाहूँगा: एक सरणी एक फ़ाइल में वैश्विक क्षेत्र में परिभाषित किया गया है:सी 99 में किसी अन्य फ़ाइल में परिभाषित आकार की वैश्विक सरणी कैसे घोषित करें?
int arr[] = {1, 2, 3};
// in the same file it is no problem to obtain the number of elements in arr by
#define arr_num sizeof(arr)/sizeof(arr[0])
// or
enum {arr_num = sizeof(arr)/sizeof(arr[0])};
समस्या यह है कि अन्य फ़ाइलों में उसी प्रोजेक्ट में मैं एआर में मौजूद तत्वों की संख्या के साथ वैश्विक दायरे में फिर से अन्य सरणी बनाना चाहता हूं। लेकिन यदि एनम या # डिफाईन को 'बाहरी' करने का कोई तरीका नहीं है, तो सी 99 में इसे कैसे प्राप्त किया जा सकता है। निस्संदेह कोई हेडर फ़ाइल में हाथ से एआर के तत्वों की संख्या निर्धारित कर सकता है और बाद में इसे अन्य फाइलों में उपयोग कर सकता है लेकिन सरणी एआर में तत्वों की संख्या को बदलकर यह बहुत असुविधाजनक है क्योंकि किसी को भी हाथ से बदलना पड़ता है इस # परिभाषा का मान (जब तीर structs की सरणी है तो यह भी अधिक असुविधाजनक है)।
किसी भी मदद के लिए बहुत बहुत धन्यवाद।
यह अभी भी संपूर्ण प्रोग्राम अनुकूलन के साथ भी अमान्य सी है। –