मैं समझता हूं कि आकार एक ऑपरेटर है, जिसका मूल्यांकन एक पूर्णांक स्थिरांक के लिए संकलित समय पर किया जाता है।मैं प्रीप्रोसेसर की स्थिति में आकार का उपयोग क्यों नहीं कर सकता?
#if 4 == sizeof(int)
typedef int Int32;
#endif
(cygwin-जीसीसी 3.4.4 के साथ-साथ विजुअल C++ 6.0 रिपोर्ट त्रुटियों संकलन)
ऐसे उपयोग नहीं क्यों है: लेकिन यह ऐसा लगता है जैसे #if पूर्वप्रक्रमक निर्देश में नहीं किया जा सकता लगते हैं अनुमति? sizeof
संकलन समय में मूल्यांकन किया जाता
वास्तव में प्रीप्रोसेसिंग संकलन के दौरान होता है, बस पिछले चरणों में से एक में। बाद के चरण में 'आकार' का मूल्यांकन करना होता है। – sbi
@ एसबी प्रीप्रोसेसिंग संकलन का हिस्सा नहीं है - संकलक आमतौर पर वास्तविक संकलन से पहले प्रीप्रोसेसर चलाता है, लेकिन आप संकलक को ऐसा करने के लिए निर्देश दे सकते हैं। रिचन का जवाब 100% सही है। – qrdl
ठीक है, मैं गलत था, लेकिन केवल शब्दावली में: यह _translation_ के चरणों में से एक है। इस http://stackoverflow.com/questions/1476892/1479972#1479972 के अनुसार, "संकलन" नामक कोई चरण नहीं है, इसलिए इसका अर्थ क्या है व्याख्या के लिए खुला लगता है। – sbi