मैंने कहीं पढ़ा है कि BOOL (typedef int) का उपयोग मानक सी ++ प्रकार बूल का उपयोग करने से बेहतर है क्योंकि BOOL का आकार 4 बाइट्स (यानी 4 का एक बहु) है और यह बचाता है रजिस्टरों में चर के संरेखण संचालन या उन पंक्तियों के साथ कुछ ...प्रदर्शन के लिए C++ BOOL (typedef int) बनाम बूल
क्या इसमें कोई सच है? मैं कल्पना करता हूं कि यदि आप बूल (1 बाइट) का उपयोग करते हैं तो भी कंपाइलर 4s के एकाधिक के संरेखण को रखने के लिए स्टैक फ्रेम को पैड करेगा?
मैं किसी भी तरह से संरेखण, पंजीयक इत्यादि के अंतर्निहित कार्यकलापों पर एक विशेषज्ञ नहीं हूं, इसलिए अगर मुझे यह पूरी तरह से गलत लगता है तो मैं पहले से माफ़ी मांगता हूं। मुझे सही होने की उम्मीद है। :)
चीयर्स!
यदि 'बूल' 4 बाइट्स के रूप में तेज़ है, तो कंपाइलर इसे 4 बाइट बना देगा। यह परिदृश्य पर निर्भर करता है। तो नहीं, 'बूल' प्रदर्शन लाभ नहीं देता है। – tenfour
यह ऐसी चीज है जिसे आप केवल प्रोफाइलिंग के माध्यम से देख सकते हैं, लेकिन क्या आप एक बूल चाहते हैं जिसमें 0,1 के अलावा मूल्य हो सकते हैं? यहां तक कि नकारात्मक मूल्य भी? – juanchopanza
इससे कोई फर्क नहीं पड़ता। कंपाइलर पैड मान यह सुनिश्चित करने के लिए मानते हैं कि वे ठीक से गठबंधन हैं। उस प्रकार का प्रयोग करें जो सबसे ज्यादा समझ में आता है। यदि यह एक बूलियन मान है, तो इसे 'बूल' बनाएं, न कि 'int' (या कुछ 'टाइपिफ़')। –