博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言与C++ <string.h> memchr出现的问题
阅读量:5235 次
发布时间:2019-06-14

本文共 621 字,大约阅读时间需要 2 分钟。

相同的如下代码

#include 
#include
int main(){ const char str[] = "http://www.yiibai.com/html"; const char ch = '.'; char *ret; ret = memchr(str, ch, strlen(str)); printf("%s\n%s\n", str, ret); return 0;}

用C的编译器可以通过,main.c用GCC和MSVC都可以。

但是,改成main.cpp,用GCC和MSVC都会报错。

memchr函数原型为

const void* memchr( const void* ptr, int ch, size_t count );

在const void* 转换为 char* 时,C语言编译器和C++编译器处理是不同的。

 

在main.cpp中,改为

ret = (char *)memchr(str, ch, strlen(str));

就可以编译通过了。

 

原因是C++编译器对隐式转换要求更高。

posted on
2018-06-01 22:38 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/tangjicheng/p/9123846.html

你可能感兴趣的文章
android 73 下载图片
查看>>
nodejs中require的路径是一个文件夹时发生了什么
查看>>
AFNetworking错误信息解析
查看>>
linux及安全第四周总结
查看>>
正则匹配 【】用法
查看>>
Nginx的ip_hash指令
查看>>
zabbix3.44+交换机华为或者H3C模版,监控所有的口updown以及流量的模版
查看>>
阿里云线上ROS静态路由转发,有大坑。
查看>>
笔记四
查看>>
poj_3662 最小化第k大的值
查看>>
spring-boot项目在外部tomcat环境下部署
查看>>
深入解析HashMap、HashTable
查看>>
linq join用法
查看>>
Codeforces 982B (优先队列)
查看>>
ACM组队训练记录(Grooming)
查看>>
c# 之 new 关键字
查看>>
【AnjularJS系列6】过滤器
查看>>
Redis-笔记
查看>>
【性能测试】脚本开发,最普通的http协议脚本2
查看>>
全国主要城市不同日照标准的间距系数
查看>>