size_t符号丢失(返回)(int到unsigned int))

时间:2012-08-07 22:15:32

标签: size-t

此程序通过减法警告消息

计算字符串的长度

- \

我的stringLength函数返回一个size_t 我在格式说明符中的错误或我如何返回我的值?

#include <stdio.h>
#include <stdlib.h>

size_t stringLength(const char *str);

int main(void) 
{


    return 0;
}

size_t stringLength(const char *str)
{
    const char *strCopy = str;

    while (*str)              
    {
        str++;                
    }

}

1 个答案:

答案 0 :(得分:1)

您遇到的问题是operator-()返回有符号值,而不是无符号值。因为在你的日常生活中,你知道价值总是积极的,你可以向size_t添加一个强制转换,而不用担心这个标志是错误的。

return static_cast<size_t>(str - strCopy); //C++

return (size_t)(str - strCopy); //C