精华内容
下载资源
问答
  • 昨天用了个中文绿色版的Visual6.0,看到有创建文件的包括头文件和源文件的选项还有其他很多选项,但不知道用哪个可以创建后缀为cpp的文件,现在才是刚刚看书开始学习,请教下以后要是有后缀名为其他的文件,又该在...
  • SF.1: Use a.cppsuffix for ...SF.1:如果你项目没有正在遵从其他习惯,代码文件使用.cpp后缀接口文件使用.h后缀 Reason(原因) It's a longstanding convention. But consistency is more important,...

    SF.1: Use a .cpp suffix for code files and .h for interface files if your project doesn't already follow another convention

    SF.1:如果你的项目没有正在遵从的其他习惯,为代码文件使用.cpp后缀,为接口文件使用.h后缀

     

    Reason(原因)

    It's a longstanding convention. But consistency is more important, so if your project uses something else, follow that.

    这是长期以来的习惯。但是连贯性更加重要,因此如果你的项目已有其他传统,遵守它。

     

    Note(注意)

    This convention reflects a common use pattern: Headers are more often shared with C to compile as both C++ and C, which typically uses .h, and it's easier to name all headers .h instead of having different extensions for just those headers that are intended to be shared with C. On the other hand, implementation files are rarely shared with C and so should typically be distinguished from .c files, so it's normally best to name all C++ implementation files something else (such as .cpp).

    这个习惯反映一个常见的使用模式:头文件更多地和C代码一起被分享并且和C++或C代码一起编译,它们通常使用.h后缀。使用.h为所有的头文件命名比较容易,而不是只为试图和C代码一起分享的头文件使用.h后缀。另一方面,(C++,译者注)实现文件极少和C代码一起分享,通常需要和.c文件区分开来,因此一般最好为所有的C++实现代码使用其他后缀(例如.cpp)。

    The specific names .h and .cpp are not required (just recommended as a default) and other names are in widespread use. Examples are .hh, .C, and .cxx. Use such names equivalently. In this document, we refer to .h and .cpp as a shorthand for header and implementation files, even though the actual extension might be different.

    特定的.h和.cpp后缀不是必须的(只是作为默认值被推荐),其他的名称也已经被广泛使用。例如.hh,.C,和.cxx等。使用这些名称同样可以。在本文档中,我们更加推荐.h和.cpp作为头文件和实现文件的简略命名方式,哪怕它们的实际上使用了其他的后缀。

    Your IDE (if you use one) might have strong opinions about suffixes.

    你的IDE(如果你在使用的话)有可能存在有关后缀的强烈选项。

     

    Example(示例)

    // foo.h:
    extern int a;   // a declaration
    extern void foo();
    
    // foo.cpp:
    int a;   // a definition
    void foo() { ++a; }
    

    foo.h provides the interface to foo.cpp. Global variables are best avoided.

    foo.h提供foo.cpp的接口。最好避免全局变量。

     

    Example, bad(反面示例)

    // foo.h:
    int a;   // a definition
    void foo() { ++a; }
    

    #include <foo.h> twice in a program and you get a linker error for two one-definition-rule violations.

    在一个程序中两次#include<foo.h>会引发2个违反一次定义规则的链接错误。

     

    Enforcement(实施建议)

    • Flag non-conventional file names.

    • 标记不存在文件命名习惯的情况。

    • Check that .h and .cpp (and equivalents) follow the rules below.

    • 检查.h文件和.cpp文件(或其他等价习惯)是否遵守下面的规则。

       

    原文链接

    https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf1-use-a-cpp-suffix-for-code-files-and-h-for-interface-files-if-your-project-doesnt-already-follow-another-convention

     

    新书介绍

    《实战Python设计模式》是作者最近出版的新书,拜托多多关注!

    图片

    本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

    对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。

     


     

    觉得本文有帮助?请分享给更多人。

    关注微信公众号【面向对象思考】轻松学习每一天!

    面向对象开发,面向对象思考!

     

    图片

     

    展开全文
  • C与CPP后缀的文件在编译时的区别

    千次阅读 2019-07-17 22:00:28
    1.gcc认为.c的C程序,.cpp的为C++程序; 2.g++认为.c的C++程序,.cpp的为C++程序; 3.VC++的编译器cl认为.c的C程序,.cpp的为C++程序; 4.C程序与C++程序中同样的函数在编译后的obj文件中的symbol是不同的,...

       结论:
                1.gcc认为.c的为C程序,.cpp的为C++程序;
                2.g++认为.c的为C++程序,.cpp的为C++程序;
                3.VC++的编译器cl认为.c的为C程序,.cpp的为C++程序;
                4.C程序与C++程序中同样的函数在编译后的obj文件中的symbol是不同的,所以以C方式编译的obj文件与以C++方式编译的obj文件无法成功链接。

     

                使个demo说明一下:
                准备工作:
                为gcc、g++、cl(VC++编译器)、link(VC++链接器)设置好环境变量
                //demo.cpp
                #include 
                #include "foo.h"
                int main()

                { 

                    printHello(); 

                    return 0;

                }

     

                //foo.h
                void printHello();

     

                //foo.c
                #include 
                void printHello()

                {

                    printf("Hello MM");

                }

     

                1.gcc、g++测试,在windows的cmd下:
                D:\>g++ demo.cpp -o demo.obj -c (以C++方式编译生成demo.obj文件,-c选项表示只编译不链接)
                D:\>gcc foo.c -o foo.obj -c (以C方式编译生成foo.obj文件)
                D:\>g++ demo.obj foo.obj -o demo (链接demo.obj、foo.obj文件)
                demo.obj(.text+0x2b):demo.cpp: undefined reference to `printHello()'
                collect2: ld returned 1 exit status
                     提示说找不到printHello,因为按照C++的编译方式去找printHello应该对应某一种格式的symbol,但是我们

                的foo.obj中printHello的symbol是另外一种格式的,所以找不到了。
                把foo.c改成foo.cpp就可以成功链接了。

     

                2.cl、link测试,在windows的cmd下:
                D:\>cl demo.cpp /c (以C++方式编译生成demo.obj文件,/c选项表示只编译不链接)
                D:\>cl foo.c /c (以C方式编译生成foo.obj文件)
                D:\>link demo.obj foo.obj
                Microsoft (R) Incremental Linker Version 6.00.8168
                Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

                demo.obj : error LNK2001: unresolved external symbol "void __cdecl printHello(void)"(?printHello@@YAXXZ)
                demo.exe : fatal error LNK1120: 1 unresolved externals
                理由同上,把foo.c改成foo.cpp就可以成功链接了。

     

     

     

                参考文章:
                1.gcc和g++的区别(开源CEO)
                   http://www.linuxdiyf.com/bbs/viewthread.php?tid=109684
                2.在 console mode 中使用 C/C++ 编译器(jjhou候俊杰)
                   http://jjhou.csdn.net/article99-10.htm

     

                

    没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。

    展开全文
  • SF.1: Use a.cppsuffix for code files and.hfor interface files if your project doesn't already follow another conventionSF.1:如果你项目没有正在遵从其他习惯,代码文件使用.cpp后缀接口文件使用.h...

    beb996968505354e9807c17ed50d2729.png

    SF.1: Use a .cpp suffix for code files and .h for interface files if your project doesn't already follow another convention

    SF.1:如果你的项目没有正在遵从的其他习惯,为代码文件使用.cpp后缀,为接口文件使用.h后缀

    Reason(原因)

    It's a longstanding convention. But consistency is more important, so if your project uses something else, follow that.

    这是长期以来的习惯。但是连贯性更加重要,因此如果你的项目已有其他传统,遵守它。

    Note(注意)

    This convention reflects a common use pattern: Headers are more often shared with C to compile as both C++ and C, which typically uses .h, and it's easier to name all headers .h instead of having different extensions for just those headers that are intended to be shared with C. On the other hand, implementation files are rarely shared with C and so should typically be distinguished from .c files, so it's normally best to name all C++ implementation files something else (such as .cpp).

    这个习惯反映一个常见的使用模式:头文件更多地和C代码一起被分享并且和C++或C代码一起编译,它们通常使用.h后缀。使用.h为所有的头文件命名比较容易,而不是只为试图和C代码一起分享的头文件使用.h后缀。另一方面,(C++,译者注)实现文件极少和C代码一起分享,通常需要和.c文件区分开来,因此一般最好为所有的C++实现代码使用其他后缀(例如.cpp)。

    The specific names .h and .cpp are not required (just recommended as a default) and other names are in widespread use. Examples are .hh, .C, and .cxx. Use such names equivalently. In this document, we refer to .h and .cpp as a shorthand for header and implementation files, even though the actual extension might be different.

    特定的.h和.cpp后缀不是必须的(只是作为默认值被推荐),其他的名称也已经被广泛使用。例如.hh,.C,和.cxx等。使用这些名称同样可以。在本文档中,我们更加推荐.h和.cpp作为头文件和实现文件的简略命名方式,哪怕它们的实际上使用了其他的后缀。

    Your IDE (if you use one) might have strong opinions about suffixes.

    你的IDE(如果你在使用的话)有可能存在有关后缀的强烈选项。

    Example(示例)

    // foo.h:
    extern int a; // a declaration
    extern void foo();

    // foo.cpp:
    int a; // a definition
    void foo() { ++a; }

    foo.h provides the interface to foo.cpp. Global variables are best avoided.

    foo.h提供foo.cpp的接口。最好避免全局变量。

    Example, bad(反面示例)

    // foo.h:
    int a; // a definition
    void foo() { ++a; }

    #include  twice in a program and you get a linker error for two one-definition-rule violations.

    在一个程序中两次#include会引发2个违反一次定义规则的链接错误。

    Enforcement(实施建议)

    • Flag non-conventional file names.

    • 标记不存在文件命名习惯的情况。

    • Check that .h and .cpp (and equivalents) follow the rules below.

    • 检查.h文件和.cpp文件(或其他等价习惯)是否遵守下面的规则。

    原文链接

    https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sf1-use-a-cpp-suffix-for-code-files-and-h-for-interface-files-if-your-project-doesnt-already-follow-another-convention

    新书介绍

    《实战Python设计模式》是作者最近出版的新书,拜托多多关注!

    de2cacc9d802cbb80af739a1bbec92f0.png

    本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

    对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。


    觉得本文有帮助?请分享给更多人。

    关注微信公众号【面向对象思考】轻松学习每一天!

    面向对象开发,面向对象思考!

    2dbcd73008667442f1d4fb2ccf58d890.png

    展开全文
  • 1.gcc认为.c的C程序,.cpp的为C++程序;  2.g++认为.c的C++程序,.cpp的为C++程序;  3.VC++的编译器cl认为.c的C程序,.cpp的为C++程序;  4.C程序与C++程序中同样的函数在编译后的obj文件中的symbol是...

                1.gcc认为.c的为C程序,.cpp的为C++程序;

                2.g++认为.c的为C++程序,.cpp的为C++程序;

                3.VC++的编译器cl认为.c的为C程序,.cpp的为C++程序;

                4.C程序与C++程序中同样的函数在编译后的obj文件中的symbol是不同的,所以以C方式编译的obj文件与以C++方式

                   编译的obj文件无法成功链接。

     

                使个demo说明一下:

                准备工作:

                为gcc、g++、cl(VC++编译器)、link(VC++链接器)设置好环境变量

                //demo.cpp

                #include <stdio.h>

                #include "foo.h"

                int main()

                { 

                    printHello(); 

                    return 0;

                }

     

                //foo.h

                void printHello();

     

                //foo.c

                #include <stdio.h>

                void printHello()

                {

                    printf("Hello MM");

                }

     

                1.gcc、g++测试,在windows的cmd下:

                D:\>g++ demo.cpp -o demo.obj -c (以C++方式编译生成demo.obj文件,-c选项表示只编译不链接)

                D:\>gcc foo.c -o foo.obj -c (以C方式编译生成foo.obj文件)

                D:\>g++ demo.obj foo.obj -o demo (链接demo.obj、foo.obj文件)

                demo.obj(.text+0x2b):demo.cpp: undefined reference to `printHello()'

                collect2: ld returned 1 exit status

                     提示说找不到printHello,因为按照C++的编译方式去找printHello应该对应某一种格式的symbol,但是我们

                的foo.obj中printHello的symbol是另外一种格式的,所以找不到了。

                把foo.c改成foo.cpp就可以成功链接了。

     

                2.cl、link测试,在windows的cmd下:

                D:\>cl demo.cpp /c (以C++方式编译生成demo.obj文件,/c选项表示只编译不链接)

                D:\>cl foo.c /c (以C方式编译生成foo.obj文件)

                D:\>link demo.obj foo.obj

                Microsoft (R) Incremental Linker Version 6.00.8168

                Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

                demo.obj : error LNK2001: unresolved external symbol "void __cdecl printHello(vo

                id)"(?printHello@@YAXXZ)

                demo.exe : fatal error LNK1120: 1 unresolved externals

                理由同上,把foo.c改成foo.cpp就可以成功链接了。

     

     

     

                参考文章:

                1.gcc和g++的区别(开源CEO)

                   http://www.linuxdiyf.com/bbs/viewthread.php?tid=109684

                2.在 console mode 中使用 C/C++ 编译器(jjhou候俊杰)

                   http://jjhou.csdn.net/article99-10.htm

     

    展开全文
  • 首先打开终端: (1)cd到你所要转成c语言文件的目录里: cd /Users/my00/Desktop/swift/托尔斯泰/托尔斯泰/ ...如果没有提示错误的话,这时候你就会发现,在你所cd的目录下面多了一个后缀名是cpp的文件
  • C程序保存.c文件和.cpp文件的区别

    千次阅读 2020-05-03 10:56:58
    在学习数据结构时,看到老师把C语言和C++混用,...2.一般来说,如文件后缀为.cpp,则编译器默认采用C++语法标准进行编译;如文件后缀为.c,则编译器默认采用C语法标准进行编译。 3.由于C++兼容C,因此C语言程序既可...
  • 在c++中,有纯模板文件可以命名.tpp ...这里介绍下个性化设置编程语言的文件后缀 Tools &gt; Options &gt; Text Editor &gt; File Extension 之后选择 C++language 并填入 tpp,点击add即可。...
  • SF.1: Use a .cpp suffix for code files and .h for interface files if your project doesn't already follow another conventionSF.1:如果你项目没有正在遵从其他习惯,代码文件使用.cpp后缀接口文件...
  • VC工程中后缀为.cpp,.h,.rc,.dsp,.dsw的文件的作用是什么?.cpp 是源程序代码c++文件.h 是包含函数声明和变量定义的头文件.rc 是定义资源的资源脚本文件.dsp 是工程文件,记录当前工程的有关信息.dsw 是工作区文件...
  • VC工程中后缀为.cpp,.h,.rc,.dsp,.dsw

    千次阅读 2011-03-31 15:20:00
    .cpp 是源程序代码c++文件 .h 是包含函数声明和变量定义头文件 .rc 是定义资源资源脚本文件 .dsp 是工程文件,记录当前工程有关信息 .dsw 是工作区文件,一个工作区可能包含一个...
  • .cpp文件变成.c文件后出现问题

    千次阅读 2018-09-04 16:03:51
    使用VS2010编写C程序,在编写代码过程中,按照VS的默认方式新建文件,得到的全是cpp后缀的文件,一直到代码编写完毕,功能全部实现。最后,因为是C程序,所以希望还是全部以.c文件主,方便跨平台编译。 本来以为...
  • 2、第二个问题如图,文件后缀为.cpp时编译正常,改为.c后就报WSAData未定义了,visual studio是支持编译c程序,报错这是为什么呢?从网络上查询好久也没找到答案。后来在一个大神告诉说应该是WSADATA,试了试果然...
  • linux中共享库以so为后缀(shared object),与Windows下DLL类似,是在程序运行时动态连接。多个进程可以连接同一个共享库。以下以编译mylib.c例讲如何编译.so文件。首先,编译mylib.c:$gcc -c -fPIC -o mylib.o ...
  • .c和.cpp文件的区别

    千次阅读 2015-03-18 13:08:02
    1.gcc认为.c的C程序,.cpp的为C++程序; 2.g++认为.c的C++程序,.cpp的为C++程序; 3.VC++的编译器cl认为.c的C程序,.cpp的为C++程序; 4.在编译源文件时,C编译器和C++编译器都会对符号(函数或变量)名作...
  • C#文件的后缀名?

    2019-10-08 08:57:46
    C程序的文件后缀名是.c C++程序的后缀名是.cpp python程序的后缀名是.py C# 的后缀名是.cs,没想到诶 什么需要这个呢,因为在vs code中新建C#文件,需要自己设定后缀名,使得编辑器识别语言种类。 ...
  • 在C++开发的项目中如果引用包含有.c后缀的文件时可能会出现一些莫名其妙的问题,所以在使用C++开发的项目中最好把所有后缀.c的文件修改.cpp的
  • c++文件的不同后缀

    2020-12-30 06:42:21
    参考了C++ Primer Plus第五版中文版 P8 C++实现 源代码扩展名 UNIX C、cc、cxx、c GNU C++ C、cc、cxx、cpp、c++ Borland C++ Cpp Microsoft Visual C++ cpp、cxx、cc ...Android系统源码中以cc为后缀 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 886
精华内容 354
关键字:

后缀为cpp的文件