gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:11 25 4
gpt4 key购买 nike

int l = strlen(s);

警告 C4244:“=”:从“__w64 int”到“int”的转换,可能会丢失数据

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

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

所有像 reinterpret_cast、static_cast 这样明显的事情也会产生错误或警告。

编辑:啊。 c 风格的转换:(int) 确实有效。我一直坚信它没有。

最佳答案

const char * str = "Hello";
int len = static_cast< int >( strlen( str ) );
return len;

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

关于c++ - 使用/Wp64 编译时如何在没有警告的情况下将 strlen 的结果转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com