• .c vs .cc vs. .cpp vs .hpp vs .h vs .cxx [closed] from http://stackoverflow.com/questions/5171502/cvsccvscppvshppvshvscxx


    Possible Duplicates:
    *.h or *.hpp for your class definitions
    Correct C++ code file extension? .cc vs .cpp

    I used to think that it used to be that:

    • .h files are header files for C and C++, and usually only contain declarations.
    • .c files are C source code.
    • .cpp files are C++ source code (which can also be C source code).

    then files like .hpp.cc, and .cxx came along, and I got totally confused... what's the difference(s) between those? When do you use the "new" ones?

    Historically, the first extension used for C++ were .c and .h, exactly like for C. This caused practical problems, especially the .c which didn't allows build system to easily differentiate C++ and C files.

    Unix, on which C++ has been developed, has case sensitive file systems. So some used .C for C++ files. Other used .c++, .cc and .cxx. .C and .c++ have the problem that they aren't available on other file systems and their use quickly dropped. DOS and Windows C++ compilers tended to use .cpp, and some of them make the choice difficult, if not impossible, to configure. Portability consideration made that choice the most common, even outside windows.

    Headers have used the corresponding .H, .h++, .hh, .hxx and .hpp. But unlike the main files, .h remains to this day a popular choice for C++ even with the disadvantage that it doesn't allow to know if the header can be included in C context or not. Standard headers have now no extension at all.

    Additionally, some are using .ii, .ixx, .ipp, .inl for headers providing inline definitions and .cxx, .cpp, .txx, .tpp and .tpl for template definitions. Those are either included in the headers providing the definition, or manually in the contexts where they are needed.

    Compilers and tools usually don't care about what extensions are used, but using a extension that they associate with C++ prevents the need to track out how to configure them so they correctly recognise the language used.

  • 相关阅读:
    构建之法阅读笔记一
    android studio的安装以及配置
    github本地上传口令
    注册git hub
    易用性
    第六周学习总结
    大型分布式网站架构设计与实践阅读笔记(3)
    第五周学习总结
    大型分布式网站架构设计与实践阅读笔记(2)
    第四周学习总结
  • 原文地址:https://www.cnblogs.com/songtzu/p/2827651.html
Copyright © 2020-2023  润新知