"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं सीपीयू आर्किटेक्चर का निर्धारण कैसे कर सकता हूं जिसके लिए मेरा सी/सी++ कोड संकलित किया जा रहा है?

मैं सीपीयू आर्किटेक्चर का निर्धारण कैसे कर सकता हूं जिसके लिए मेरा सी/सी++ कोड संकलित किया जा रहा है?

2024-11-16 को प्रकाशित
ब्राउज़ करें:979

How can I determine the CPU architecture for which my C/C   code is being compiled?

एक विशिष्ट सीपीयू आर्किटेक्चर के लिए संकलन

सी या सी कोड लिखते समय, अक्सर उस लक्ष्य सीपीयू आर्किटेक्चर को जानना आवश्यक होता है जिसके लिए आप हैं संकलन. यह जानकारी कोड प्रदर्शन को अनुकूलित करने या विशिष्ट हार्डवेयर के साथ संगतता सुनिश्चित करने के लिए उपयोगी हो सकती है। विभिन्न कंपाइलर सीपीयू आर्किटेक्चर को अलग करने के लिए विभिन्न गैर-मानक प्रीप्रोसेसर परिभाषाओं का उपयोग करते हैं (उदाहरण के लिए, MSVS में _M_X86, i386__, और GCC में __arm)।

मानक जांच विधियां

दुर्भाग्य से, संकलन के समय सीपीयू आर्किटेक्चर का पता लगाने के लिए कोई सार्वभौमिक मानक नहीं है समय। हालाँकि, निम्नलिखित बाहरी फ़ंक्शन कंपाइलरों की एक विस्तृत श्रृंखला के लिए आर्किटेक्चर का पता लगा सकता है:

extern "C" {
    const char *getBuild() { 
        #if defined(__x86_64__) || defined(_M_X64)
        return "x86_64";
        #elif defined(i386) || defined(__i386__) || defined(__i386) || defined(_M_IX86)
        return "x86_32";
        #elif defined(__ARM_ARCH_2__)
        return "ARM2";
        #elif defined(__ARM_ARCH_3__) || defined(__ARM_ARCH_3M__)
        return "ARM3";
        #elif defined(__ARM_ARCH_4T__) || defined(__TARGET_ARM_4T)
        return "ARM4T";
        #elif defined(__ARM_ARCH_5_) || defined(__ARM_ARCH_5E_)
        return "ARM5"
        #elif defined(__ARM_ARCH_6T2_) || defined(__ARM_ARCH_6T2_)
        return "ARM6T2";
        #elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__)
        return "ARM6";
        #elif defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__)
        return "ARM7";
        #elif defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__)
        return "ARM7A";
        #elif defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__)
        return "ARM7R";
        #elif defined(__ARM_ARCH_7M__)
        return "ARM7M";
        #elif defined(__ARM_ARCH_7S__)
        return "ARM7S";
        #elif defined(__aarch64__) || defined(_M_ARM64)
        return "ARM64";
        #elif defined(mips) || defined(__mips__) || defined(__mips)
        return "MIPS";
        #elif defined(__sh__)
        return "SUPERH";
        #elif defined(__powerpc) || defined(__powerpc__) || defined(__powerpc64__) || defined(__POWERPC__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC)
        return "POWERPC";
        #elif defined(__PPC64__) || defined(__ppc64__) || defined(_ARCH_PPC64)
        return "POWERPC64";
        #elif defined(__sparc__) || defined(__sparc)
        return "SPARC";
        #elif defined(__m68k__)
        return "M68K";
        #else
        return "UNKNOWN";
        #endif
    }
}
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3