int l = strlen(s);
警告C4244:'=':从'__w64 int'转换为'int',可能会丢失数据
我需要用内联函数替换strlen int l = new_strlen(s);
但是如何在没有警告的情况下将strlen的结果移植到int中并且不使用pragma?我可以保证我的字符串中不超过20亿个字符!
所有明显的事情,如reinterpret_cast,static_cast也会产生错误或警告.
编辑:唉.一个c风格的演员:(int)确实有效.我确信它没有.
const char * str = "Hello"; int len = static_cast< int >( strlen( str ) ); return len;
即使在警告级别4(VS2005)上,此代码也不会产生任何错误或警告.你用什么编译器?