当前位置: 首页 > wzjs >正文

信阳新网站做seo优化做seo排名

信阳新网站做seo优化,做seo排名,github允许做网站服务器,移动端网站如何优化本文介绍一些extern在C中的用法 声明与定义分离 C程序员应该都知道单一定义规则ODR 在任何一个翻译单元中,只允许存在任何变量、函数、类类型、枚举类型 、概念 (自 C20 起) 或模板的一个定义(其中一些可能具有多个声明,但只允许一个定义&a…

本文介绍一些externC++中的用法

声明与定义分离

C++程序员应该都知道单一定义规则ODR

在任何一个翻译单元中,只允许存在任何变量、函数、类类型、枚举类型 、概念 (自 C++20 起) 或模板的一个定义(其中一些可能具有多个声明,但只允许一个定义)。 在整个程序(包括任何标准库和用户定义的库)中,需要出现每个非 内联 函数或变量的一个且仅一个定义,这些函数或变量是 odr-使用 的(见下文)。 编译器不要求诊断此违规行为,但违反它的程序的行为是未定义的。

具体来说,如果在头文件中初始化一个变量,在多个源文件包含此头文件,在联合编译时,就会报重定义的错误。

global.h

int global_int = 1;

global1.cc

#include "global.h"

global2.cc

#include "global.h"int main()
{return 0;
}

使用以下命令,联合编译多个文件:

g++ global1.cc global2.cc -o main

结果编译报错:

/tmp/cc4Y38ub.o:(.data+0x0): global_int 的多重定义
/tmp/ccSwS0de.o:(.data+0x0):第一次在此定义
collect2: 错误:ld 返回 1

正确的做法是在头文件中使用extern声明,在源文件中定义。

global.h

extern int global_int;

globa1.cc

#include "global.h"int global_int = 1;

global2.cc

#include "global.h"
#include <iostream>extern int global_int;int main()
{std::cout << global_int << std::endl;return 0;
}

最后打印的结果为1.

更一般的做法是,在头文件声明外部变量,在对应的源文件初始化。此时在其他的源文件读取或者修改这个变量,达到跨文件全局变量的效果。在单线程场景下,这种做法十分有效。

以C语言的方式编译函数

在 C++ 里,为支持函数重载和类成员函数等特性,编译器会对函数名、类名等进行修饰,让它们在符号表中保持唯一。可以参考我写的这篇文章:【C++】filt工具的使用

比如刚才的代码:

#include <iostream>int get_int()
{return 1;
}int main()
{std::cout << get_int() << std::endl;return 0;
}

编译后对get_int提取名字:

0000000000400806 T _Z7get_intv

C语言是没有这个机制的,因为C语言不支持重载,当我们需要将代码打包为C接口供外部调用时,比如【Python】多线程/进程操作C++代码,就需要去掉这种修饰。

此时可以用extern "C"对函数调用进行包裹。编译器会按C语言的风格编译代码:

#include <iostream>extern "C"
{int get_int(){return 1;}
}int main()
{std::cout << get_int() << std::endl;return 0;
}

此时提取名字:

0000000000400806 T get_int

可以看到,名称修饰已经去掉了。

http://www.dtcms.com/wzjs/132064.html

相关文章:

  • 中小企业网站建设案例百度收录软件
  • 音乐网站制作教程谷歌外贸seo
  • 禅道项目管理软件抚州seo外包
  • 可以看网站的浏览器郑州网络推广厂家
  • 网站推广的方案设计怎么写论坛企业推广
  • 网站建设的软件甘肃新站优化
  • 建设什么网站比较好最新新闻热点话题
  • 行业推广做哪个网站好广州疫情今天最新消息
  • 小说网站开发 公司线上广告宣传方式有哪些
  • 黄页88网官网电话东莞seo网站推广建设
  • 直接买个域名就能自己做网站如何优化关键词排名快速首页
  • 免费搭建微信网站设计南宁seo服务公司
  • 微网站界面尺寸常见的网络营销方法
  • 在线花钱做网站百度投诉电话
  • 申请域名做网站中文域名的网站
  • 徐州免费网站建设新手怎么推广自己的店铺
  • 深圳哪个公司做网站好口碑营销的重要性
  • 直播网站建设书籍软文广告范文
  • 广州手机网站建设哪家好企业网站制作需要多少钱
  • 日日干天天做网站安庆seo
  • 网站英文怎么写百度外推代发排名
  • 网站推广费用预算百度推广的方式有哪些
  • 想做一个自己的网站怎么做的磁力天堂torrentkitty
  • 做购物网站要多少钱朝阳区seo搜索引擎优化怎么样
  • 网站开发图网站发帖推广平台
  • 网站建设方法有那几种推广软文代发
  • 网络营销中关于网站设计7cs安卓手机性能优化软件
  • 南宁网站建设策划外包今日武汉最新消息
  • 打电话沟通做网站话术病毒式营销方法
  • 做seo网站公司线上营销策划案例