我一直试图消除一些旧代码中的警告(必须使用MSVC 2005,目前正在使用32位构建),但一直在努力摆脱size_t 到转换警告。当被称为我收到了conversion from 'size_t' to 'const unsigned int', possible loss的一种工作理论是,即I被理解为unsigned int,这导致编译器在将i传递给at时将si
我的任务是删除其中一个项目中的所有警告。在代码中的一个地方,我有下面一行。dims[0] = children.size();
其中dims是'int‘数组,子数组是’向量‘,所以size_t被分配给int。我正在VS2015上编译这段代码。理想情况下,上面的分配应该生成一个警告。"C4267: '=': conversion from 'size_t' to 'int',
一个例子是short vsintvs unsigned intvssize_tvs long intvs long long intvs uint8_t (我不知道是否还有其他方法来指定整数是否可以或者应该替换size_t,或者它是否有任何其他方式无法使用的特性?
在有帮助的答案之后,有些东西我仍然没有完全看到。正如一些人所建议的那样,size_t</
我想在C中打印出一个size_t类型的变量,但似乎size_t在不同的架构上被别名为不同的变量类型。例如,在一台计算机(64位)上,以下代码不会抛出任何警告:printf("the size is %ld", size);警告:格式'%ld‘要求类型为'long int *',但参数3的类型为'size
但是VS编译器抛出了以下警告。unsigned char myString[] = "This is my string";size_t size*' differs in indirection to slightly different base types from 'unsigned char *'
那么,获得无符号字符指针大小以消除警告的正确方法是什么呢