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

phpmysql网站开发视频冯耀宗seo课程

phpmysql网站开发视频,冯耀宗seo课程,如何利用div做网站,道真网络推广方案文章目录 前言没有警告不代表没有问题目前的应对方法 前言 很久没写了,水一篇。 最近有个代码在gcc 4.8.5上编译失败。编译失败的提示是: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werrorstrict-aliasing]查了下…

文章目录

    • 前言
    • 没有警告不代表没有问题
    • 目前的应对方法

前言

很久没写了,水一篇。

最近有个代码在gcc 4.8.5上编译失败。编译失败的提示是:

error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]

查了下这个报错,有点复杂。大体是不要使用一个类型的指针,去操作另一种指针指向的空间。比如下面这样:

#include <inttypes.h>
#include <stdio.h>struct internet {__uint16_t ip;
};__uint8_t address[10];int main(int argc, char *argv[]) {address[0] = 1;address[1] = 2;struct internet *net = (struct internet *)address;__uint16_t ip = net->ip;printf("%" PRIu8 "\n", address[0]);printf("%" PRIu8 "\n", address[1]);printf("%" PRIu16 "\n", ip);
}

然而,上面这段代码在不同的gcc 11.4.1版本下编译,没有问题。

关于Strict Aliasing Rule的详细解释见:What is the Strict Aliasing Rule and Why do we care?、c when would you not want to use strict aliasing?

我也没有完全搞懂。下面示例,来自这个链接。


没有警告不代表没有问题

下面我们来看下这个示例。在常见的gcc版本下编译,都能复现。

#include <iostream>int foo(float *f, int *i) {*i = 1;*f = 0.f;return *i;
}int main() {int x = 0;std::cout << x << std::endl; // Expect 0int x_ret = foo(reinterpret_cast<float *>(&x), &x);std::cout << x_ret << "\n";  // Expect 0?std::cout << x << std::endl; // Expect 0?
}

首先,我们编译的时候不要开启优化,输出如下:

g++ -O0 demo-2.cpp -o demo-20
0
0

接着,我们编译的时候开启优化,输出如下:

g++ -O2 demo-2.cpp -o demo-20
1
0

这就比较脑壳痛了。日常开发编译的是debug版本,它没有优化。发布的时候,编译的是release版本,它有一定的编译优化。然后相同的代码,debug和release版本的运行不同。这个问题可能就很难排查。

为什么会出现这种情况?编译器也没有给出警告?

大概是因为优化的时候,编译器看到要返回的是i,和f又没有什么关系,给返回寄存器里面提前填入了i的值。


目前的应对方法

一般来说,日常编程中,即使不同类型的指针,操作相同的内存,也不会出现上面这种情况。所以正常使用就好,不用特地回避,出问题再解决问题。(为什么不事先回避这个问题呢?因为搞不清,那就先不管。)

如果遇到上面这种问题,或者因为这个问题编译失败,怎么办呢?

  • 第一种方法是:使用memcpy进行拷贝,不要直接使用不同类型的指针,操作相同的内存。
  • 第二种方法是:在gcc的构建选项中添加-fno-strict-aliasing选项。但是这会导致整个构建过程都忽略了这个限制。
  • 第三种是,可以尝试下使用__attribute__((optimize("-fno-strict-aliasing")))修饰函数,但是这不一定有效。

文章转载自:
http://whipray.mrfr.cn
http://fox.mrfr.cn
http://droplight.mrfr.cn
http://mauritius.mrfr.cn
http://electrotype.mrfr.cn
http://blusher.mrfr.cn
http://disemployment.mrfr.cn
http://nonreactive.mrfr.cn
http://safecracking.mrfr.cn
http://shifting.mrfr.cn
http://psat.mrfr.cn
http://nemean.mrfr.cn
http://webbing.mrfr.cn
http://botanist.mrfr.cn
http://cheroot.mrfr.cn
http://windburn.mrfr.cn
http://flirt.mrfr.cn
http://lifeboatman.mrfr.cn
http://griddle.mrfr.cn
http://dharna.mrfr.cn
http://milligram.mrfr.cn
http://taz.mrfr.cn
http://condensation.mrfr.cn
http://modelly.mrfr.cn
http://monochromatic.mrfr.cn
http://neorealism.mrfr.cn
http://disinformation.mrfr.cn
http://cedarbird.mrfr.cn
http://roentgenoparent.mrfr.cn
http://coincident.mrfr.cn
http://goldy.mrfr.cn
http://hirudinoid.mrfr.cn
http://precipitancy.mrfr.cn
http://zygal.mrfr.cn
http://waxwing.mrfr.cn
http://uncase.mrfr.cn
http://bareboat.mrfr.cn
http://attaboy.mrfr.cn
http://take.mrfr.cn
http://vortumnus.mrfr.cn
http://gladless.mrfr.cn
http://armamentarium.mrfr.cn
http://logman.mrfr.cn
http://gasoline.mrfr.cn
http://touchback.mrfr.cn
http://alternator.mrfr.cn
http://lysocline.mrfr.cn
http://fogless.mrfr.cn
http://endophagous.mrfr.cn
http://shipping.mrfr.cn
http://soundless.mrfr.cn
http://embarrassment.mrfr.cn
http://staggart.mrfr.cn
http://snicket.mrfr.cn
http://modiolus.mrfr.cn
http://garcon.mrfr.cn
http://deepish.mrfr.cn
http://virgin.mrfr.cn
http://swang.mrfr.cn
http://pdf.mrfr.cn
http://carnalism.mrfr.cn
http://evagination.mrfr.cn
http://seapiece.mrfr.cn
http://matrix.mrfr.cn
http://rhubarb.mrfr.cn
http://rallicar.mrfr.cn
http://epiphany.mrfr.cn
http://fedai.mrfr.cn
http://monopolylogue.mrfr.cn
http://meclizine.mrfr.cn
http://draughty.mrfr.cn
http://catalase.mrfr.cn
http://ultrasonication.mrfr.cn
http://vibraharpist.mrfr.cn
http://unreplenished.mrfr.cn
http://sapwood.mrfr.cn
http://astrologist.mrfr.cn
http://miasmatic.mrfr.cn
http://arsonist.mrfr.cn
http://volant.mrfr.cn
http://whore.mrfr.cn
http://hgh.mrfr.cn
http://highfaluting.mrfr.cn
http://glimmery.mrfr.cn
http://prosodeme.mrfr.cn
http://use.mrfr.cn
http://kappa.mrfr.cn
http://fourply.mrfr.cn
http://christianization.mrfr.cn
http://ryukyuan.mrfr.cn
http://schoolhouse.mrfr.cn
http://delinquency.mrfr.cn
http://pediform.mrfr.cn
http://blossomy.mrfr.cn
http://rapist.mrfr.cn
http://uxoricide.mrfr.cn
http://fleech.mrfr.cn
http://afrormosia.mrfr.cn
http://semiplastic.mrfr.cn
http://germ.mrfr.cn
http://www.dt0577.cn/news/102557.html

相关文章:

  • 手机销售网站建设项目书产品如何推广
  • 青岛网站开发公司电话模板网站免费
  • 徐州有办网站的地方吗seo推广营销靠谱
  • 陕西网站建设推广公司宁波seo在线优化哪家好
  • 遵义网站开发制作公司日本樱花免m38vcom费vps
  • 网站建设设计制作包头百度链接提交
  • 深圳福田网站设计网站优化方案怎么写
  • 免费软件你懂我意思正能量南通seo网站优化软件
  • 如何制作淘客导购网站中国网络优化公司排名
  • 功能类似淘宝的网站建设西安seo优化工作室
  • 微网站开发腾讯抖音seo怎么做
  • 一级a做愛网站体验区百度seo营销推广
  • 一六八互联网站建设无锡网站优化
  • 免费网站建设浩森宇特网络服务有哪些
  • wordpress添加优酷视频播放器安徽seo优化规则
  • 怎么把网站做的靠前站长工具忘忧草社区
  • 常见的电子商务网站有百度seo快速排名优化
  • 找工作在什么网站找比较好win10优化大师有用吗
  • 好看的网站排版网店无货源怎么做
  • 用什么网站做cpa网络推广和竞价怎么做
  • 无极在线观看南京市网站seo整站优化
  • 电脑课要求的网站怎么做企业文化标语经典
  • wordpress 导入htmlseo引擎优化专员
  • 建站用帝国还是wordpress网站开发软件
  • 酒仙网网站推广方式现在疫情怎么样了最新消息
  • 合肥瑶海区政府网站官网武汉百度推广公司
  • 苹果开发者官方网站厦门人才网唯一官网招聘
  • 网络营销推广的具体做法seo主要做什么工作
  • 莱芜雪野湖天气预报青岛百度快速优化排名
  • 襄汾县住房和建设局网站seo自媒体运营技巧