首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >strlen()在gcc中的实现

strlen()在gcc中的实现
EN

Stack Overflow用户
提问于 2018-05-08 04:42:59
回答 2查看 0关注 0票数 0

任何人都可以指出我strlen()在GCC中的定义吗?我一直在抱怨释放4.4.2现在大约半小时(而谷歌Google疯狂),我似乎无法找到strlen()实际执行的地方。

EN

回答 2

Stack Overflow用户

发布于 2018-05-08 13:25:53

你应该看看glibc,而不是GCC--它似乎被定义strlen.c- 这里是glibc版本2.7的strlen.c的链接...这里是链接到strlen.c的glibc SVN仓库的链接。

你应该看glibc而不是gcc的原因是:

GNU C库被用作GNU系统中 C库和大多数带有Linux内核的系统。

票数 0
EN

Stack Overflow用户

发布于 2018-05-08 13:49:32

gcc通常会包含它自己的strlen副本#include <string.h>。如果你忘记了,你会得到一个警告:

file_name:line_number: warning: incompatible implicit declaration of built-in function 'strlen'

并且gcc将内联在x86上的副本是repnz scasb asm变体,除非您传递-Werror或-fno-builtin。与此相关的文件位于gcc/config/<platform>/<platform>.{c,md}

它也由gcc / builtins.c控制。如果您想知道是否以及如何将strlen()优化为常量,请参阅tree c_strlen(tree src, int only_value)此文件中定义的函数。它还控制strlen(等等)如何扩展和折叠(基于前面提到的配置/平台)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档