0

该程序通过 subtraca 警告消息计算字符串的长度

-\

我的 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++;                
    }

}
4

1 回答 1

1

您遇到的问题是operator-()返回有符号值,而不是无符号值。因为在您的例程中您知道该值将始终为正,所以您可以添加强制转换 size_t而不必担心符号错误。

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

或者

return (size_t)(str - strCopy); //C
于 2012-08-07T22:22:07.113 回答