linux strlen头文件,哪个C头文件声明strlen?

Which library does strlen() belong to? Does it belong to cstring? or string?

都不是. cstring和string不是库,它们是定义各种功能和类的接口的头文件.

C语言标准表示strlen函数在头文件< string.h&gt ;.中声明.在C中,包括< string.h>将strlen放入全局命名空间中,同时包含< cstring>而是将strlen放入std命名空间.

strlen函数的实际实现在C标准库(某些平台上也称为libc或CRT).通常,这与链接时与您的可执行文件相关联.

Why it works without including library string or cstring?

在您的特定编译器和工具链中,只是头文件< iostream>包括< cstring>进入它,这意味着任何包含前者的代码也可以免费得到后者.这是一个实现细节,不应该依赖 – 如果你编译你的代码与另一个编译器,你可能会突然发现自己在编译器错误的海洋.

正确的做法是还要包括< cstring>这里;即使您的特定编译器不需要它,也可能需要与其他编译器.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值