ऐतिहासिक रूप से, सी ++ के लिए इस्तेमाल किया पहला एक्सटेंशन, .c
और .h
थे वास्तव में की तरह के लिए सी यह व्यावहारिक समस्याओं, विशेष रूप से .c
जो निर्माण सिस्टम आसानी से सी ++ और सी फ़ाइलों को अलग करने की अनुमति नहीं था का कारण बना।
यूनिक्स, जिस पर सी ++ विकसित किया गया है, में केस संवेदनशील फ़ाइल सिस्टम हैं। इसलिए कुछ ने C++ फ़ाइलों के लिए .C
का उपयोग किया। अन्य इस्तेमाल .c++
, .cc
और .cxx
। .C
और .c++
समस्या है कि वे अन्य फ़ाइल सिस्टम पर उपलब्ध नहीं हैं और उनका उपयोग जल्दी से गिरा दिया गया है। डॉस और विंडोज सी ++ कंपाइलर्स .cpp
का उपयोग करने के लिए इच्छुक हैं, और उनमें से कुछ कॉन्फ़िगर करने के लिए असंभव नहीं होने पर पसंद को मुश्किल बनाते हैं। पोर्टेबिलिटी विचार ने एमएस-विंडोज के बाहर भी सबसे आम पसंद किया है।
हेडर इसी .H
, .h++
, .hh
, .hxx
और .hpp
इस्तेमाल किया है। लेकिन मुख्य फाइलों के विपरीत, .h
इस दिन तक रहता है सी ++ के लिए भी एक लोकप्रिय विकल्प नुकसान के साथ भी यह जानने की अनुमति नहीं देता है कि हेडर को सी संदर्भ में शामिल किया जा सकता है या नहीं। मानक शीर्षलेखों में अब कोई विस्तार नहीं है।
साथ ही, कुछ .ii
, .ixx
, .ipp
, .inl
इनलाइन परिभाषा और .txx
, .tpp
और .tpl
टेम्पलेट परिभाषा के लिए उपलब्ध कराने के हेडर के लिए प्रयोग कर रहे हैं। वे या तो शीर्षकों में परिभाषा प्रदान करते हैं, या मैन्युअल रूप से उन संदर्भों में शामिल होते हैं जहां उनकी आवश्यकता होती है।
कंपाइलर और औजार आमतौर पर इस बात की परवाह नहीं करते कि किन एक्सटेंशन का उपयोग किया जाता है, लेकिन सी ++ के साथ संबद्ध एक्सटेंशन का उपयोग करके उन्हें ट्रैक करने के तरीके को ट्रैक करने की आवश्यकता को रोकता है ताकि वे सही ढंग से उपयोग की जाने वाली भाषा को पहचान सकें।
2017 संपादित करें: दृश्य स्टूडियो की प्रयोगात्मक मॉड्यूल समर्थन मॉड्यूल इंटरफेस के लिए एक डिफ़ॉल्ट विस्तार के रूप में पहचान .ixx
, बजना ++ .c++m
, .cppm
और .cxxm
ही उद्देश्य के लिए पहचानना है।
मैं मेकफ़ाइल सम्मेलनों के साथ स्थिरता के लिए '.cpp'' पर '.cxx' पसंद करता हूं (देखें http://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html) – Christoph