C++ में स्थैतिक फ़ंक्शनों की तुलना में अनाम नेमस्पेस को क्यों प्राथमिकता दी जानी चाहिए?
सभी को नमस्कार! मैं एक शुरुआती C++ डेवलपर हूँ, और "इंटरनल लिंकेज" विषय का अध्ययन करते समय, मुझे फ़ंक्शनों या वेरिएबल्स को एक ट्रांसलेशन यूनिट के लिए लोकल बनाने के दो तरीके मिले।
पहला तरीका ग्लोबल फ़ंक्शनों और वेरिएबल्स के लिए `static` कीवर्ड का उपयोग करना है। उदाहरण के लिए:
```cpp
// file.cpp
static void helperFunction() {
// ... कुछ इम्प्लीमेंटेशन
}
static int internalCounter = 0;
```
दूसरा तरीका सब कुछ एक अनाम नेमस्पेस में रखना है:
```cpp
// file.cpp
namespace {
void helperFunction() {
// ... कुछ इम्प्लीमेंटेशन
}
int internalCounter = 0;
}
```
मैं समझता हूँ कि दोनों दृष्टिकोण सिंबल को केवल इस फ़ाइल के अंदर दृश्यमान बनाते हैं। लेकिन मैं अक्सर अनुभवी डेवलपर्स से सुनता हूँ कि...