当前位置:  开发笔记 > 编程语言 > 正文

在使用/ Wp64进行编译时,如何在没有警告的情况下将strlen的结果转换为int

如何解决《在使用/Wp64进行编译时,如何在没有警告的情况下将strlen的结果转换为int》经验,为你挑选了1个好方法。

int l = strlen(s);

警告C4244:'=':从'__w64 int'转换为'int',可能会丢失数据

我需要用内联函数替换strlen int l = new_strlen(s);

但是如何在没有警告的情况下将strlen的结果移植到int中并且不使用pragma?我可以保证我的字符串中不超过20亿个字符!

所有明显的事情,如reinterpret_cast,static_cast也会产生错误或警告.

编辑:唉.一个c风格的演员:(int)确实有效.我确信它没有.



1> 小智..:
const char * str = "Hello";
int len = static_cast< int >( strlen( str ) );
return len;

即使在警告级别4(VS2005)上,此代码也不会产生任何错误或警告.你用什么编译器?

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有