栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

gcc / clang如何假设字符串常量的地址是32位?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

gcc / clang如何假设字符串常量的地址是32位?

在GCC手册中:

https://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/i386-and-x86_002d64-Options.html

3.17.15 Intel 386和AMD x86-64选项

-mcmodel =小

为小型代码模型生成代码:程序及其符号必须在地址空间的低2 GB中链接。指针是64位。程序可以静态或动态链接。 这是 默认的代码模型。

-mcmodel = kernel为内核代码模型生成代码。内核在负2 GB的地址空间中运行。该模型必须用于Linux内核代码。

-mcmodel =中

生成用于中型模型的代码:程序链接在地址空间的低2 GB中。小符号也放置在此处。大小大于-mlarge-data-
threshold的符号将放入大数据或bss节中,并且可以位于2GB以上。程序可以静态或动态链接。

-mcmodel =大

生成大型模型的代码:该模型不对节的地址和大小做任何假设。


https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html

3.18.1 AArch64选项

-mcmodel =小

为小代码模型生成代码。该程序及其静态定义的符号之间的距离必须在1GB之内。指针是64位。程序可以静态或动态链接。该模型尚未完全实施,通常被视为“小型”模型。

-mcmodel =小

为小代码模型生成代码。该程序及其静态定义的符号之间的距离必须在4GB之内。指针是64位。程序可以静态或动态链接。 这是 默认的代码模型

-mcmodel =大

为大型代码模型生成代码。这不假定节的地址和大小。指针是64位。程序只能静态链接。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/405898.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号