मैं उदाहरण के लिए संकलन समय पर मेरी सी कार्यक्रम में सभी चर घोषित करने के लिए, चाहते हैं:अधिकतम आकार डेटा
char cache[CACHE_SIZE];
char udp_ring[MAX_UDP_PACKET_SIZE*MAX_REQUESTS];
int num_packets;
char error_codes[NUM_ERRORS][MAX_ERROR_STRING]= {
{"Unknown user\n"},
{"Wrong password\n"},
....
};
सवाल है, वहाँ में चर के आकार पर किसी भी सीमा नहीं है एक सी प्रोग्राम जब वे बीएसएस या डेटा सेगमेंट में जाते हैं? उदाहरण के लिए यदि मैं 8 जीबी रैम का CACHE_SIZE घोषित करता हूं, तो यह काम करेगा? क्या 32 बिट्स या 64 बिट्स के लिए कोई अंतर है? मैं लिनक्स पर प्रोग्राम चलाने की योजना बना रहा हूं और मेरे RLIMIT_DATA कॉन्फ़िगरेशन में कोई प्रतिबंध नहीं होगा।
"मैं संकलन समय पर अपने सी प्रोग्राम में सभी चर घोषित करना चाहता हूं" - तो रनटाइम पर उन्हें घोषित करने का एक तरीका है? –
हाँ, लेकिन मैं glibc से लिंक नहीं करना चाहता, इसलिए मुझे malloc() – Nulik
** sigh ** से बचने की आवश्यकता है - एक चर घोषित करना ऐसा नहीं है जो आपको लगता है। आप रनटाइम पर एक चर घोषित नहीं कर सकते हैं। एक सी किताब पकड़ो जाओ। –