Avatar ·

#pragma once बनाम include guards: बार-बार शामिल होने से बचाव के लिए क्या चुनें?

सभी को नमस्ते! मैं एक शुरुआती C++ डेवलपर हूँ और मुझे हेडर फ़ाइलों के डबल इन्क्लूज़न की समस्या का कई बार सामना करना पड़ा है। उदाहरण के लिए, मेरे पास ऐसा कोड है:

\n\n
// math_utils.h\n#ifndef MATH_UTILS_H\n#define MATH_UTILS_H\n\nint add(int a, int b) { return a + b; }\n\n#endif\n\n// main.cpp\n#include "math_utils.h"\n#include "math_utils.h"  // गलती से दो बार शामिल हो गया\n\nint main() {\n    return add(2, 3);\n}\n
\n\n

include guards के साथ सब कुछ काम करता है, लेकिन मैंने देखा कि कई आधुनिक प्रोजेक्ट (जैसे Boost) #pragma once का उपयोग करते हैं। मैंने पढ़ा कि यह एक गैर-मानक डायरेक्टिव है, लेकिन यह सभी प्रमुख कंपाइलरों द्वारा समर्थित है।

\n\n

मुझे इसमें दिलचस्पी है:

\n
    \n
  • क्या include guards के साथ कोई वास्तविक प्रदर्शन समस्या है?

अभी तक कोई उत्तर नहीं।

लॉग इन करें उत्तर देने के लिए

ब्लॉग