当前位置: 首页> 教育> 锐评 > 中国手机网_自适应网站建设优化建站_百度竞价推广属于什么广告_赵阳竞价培训

中国手机网_自适应网站建设优化建站_百度竞价推广属于什么广告_赵阳竞价培训

时间:2025/7/11 8:26:51来源:https://blog.csdn.net/2301_77171572/article/details/145255684 浏览次数:0次
中国手机网_自适应网站建设优化建站_百度竞价推广属于什么广告_赵阳竞价培训

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        g++和gcc似乎没什么区别,比如“gcc -v”和“g++ -v”的输出是完全一样的,用来编译好像也没什么区别,都能编译.c和.cpp,但是分别编译.c和.cpp却又不能链接,怎么回事呢?

目录

g++会把.c当成C++代码

gcc无法链接C++的.o

明明函数有定义为何链接找不到


g++会把.c当成C++代码

        这意味着对.c编译出来的.o并不是C的,而是C++的(符号名称做了扩展)。

        对于.cpp,两个命令并无区别,都是当作C++。

        如果代码只是自己用,全部用g++就可以了,如果考虑共享,最好C还是C,C格式C和C++都能用,C++格式只能C++用。

gcc无法链接C++的.o

        所以只能用g++来链接(除非所有模块都是C的)。

明明函数有定义为何链接找不到

        一般就是因为搞错了代码实际是当作C还是C++来编译的,以C++方式编译的符号名会带上类型和参数信息。以C++方式编译的C文件和由C++包含的C的头文件会发生这种诡异的问题。

        为了解决这个问题,C的头文件一般(但不是全部)会提前考虑:

#ifdef __cplusplus
extern "C"
{
#endif//。。。。。。 将被编译为C格式的声明#ifdef __cplusplus
}
#endif

        这样当头文件被C++代码使用的时候,会按照C规则处理相关符号。 

        如果C的头文件没有这样做,C++那边也可以很简单地处理,将include放在extern"C"里面即可:

extern "C"
{
#include "C的未处理__cplusplus的头文件"
}

        __cplusplus是一个标准的预定义的宏,用来表示正在按照C++而不是C来编译。


(这里是文档结束)

关键字:中国手机网_自适应网站建设优化建站_百度竞价推广属于什么广告_赵阳竞价培训

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: