असल में, मैं जो चाहता हूं वह कुछ प्रकार का संकलन-समय उत्पन्न संस्करण है जो संरचना की सटीक परिभाषा से जुड़ा हुआ है। यदि संरचना की परिभाषा किसी भी तरह से बदलती है (फ़ील्ड जोड़ा गया, स्थानांतरित किया गया, शायद का नाम बदला गया), तो मैं भी उस संस्करण को बदलना चाहता हूं।संरचना परिभाषा का संस्करण आईडी जेनरेट करें?
यह सुनिश्चित करने के लिए कि यह अभी भी संगत है, पहले सेरियलाइज्ड स्ट्रक्चर में पढ़ते समय ऐसा संस्करण निरंतर उपयोगी होगा। विकल्प मैन्युअल रूप से मैन्युअल रूप से निर्दिष्ट निरंतर स्थिरता का ट्रैक रखेगा, जो संभावित रूप से भ्रमित प्रभाव डालता है यदि इसे बढ़ाना भूल जाता है (deserializing कचरा पैदा करता है), और यह भी सवाल उठता है कि वास्तव में इसे बढ़ाने के लिए (विकास और परीक्षण के दौरान, या केवल किसी प्रकार के दौरान रिलीज के)।
यह संरचना परिभाषा पर हैश उत्पन्न करने के लिए बाहरी उपकरण का उपयोग करके हासिल किया जा सकता है, लेकिन मुझे आश्चर्य है कि सी संकलक (और/या शायद इसके प्रीप्रोसेसर) के साथ यह संभव है या नहीं।
यह वास्तव में आत्मनिरीक्षण का कुछ रूप है और इसलिए मुझे संदेह है कि यह एएनएसआई सी में संभव नहीं हो सकता है, लेकिन मैं एक समाधान से खुश हूं जो जीसीसी और क्लैंग के साथ काम करता है।
इस के लिए कोई एमएस संदर्भ? – ouah
एक उदाहरण जोड़ा गया –
धन्यवाद। मैंने बस आकार का उपयोग करने के बारे में सोचा, लेकिन निश्चित रूप से उन क्षेत्रों के खिलाफ सुरक्षा नहीं करता है जो स्थानांतरित हो जाते हैं, या अन्य परिचालन जो किसी भी पहले देखे गए आकार में परिणामस्वरूप होते हैं। विंडोज एपीआई के लिए, शायद संशोधनों को केवल फ़ील्ड के जोड़ों में सीमित करने का एक अच्छा विचार है, लेकिन मैं वर्तमान में वास्तव में उस पर जाना नहीं चाहता हूं ... –