2012-08-07 50 views
0

這個計劃是由subtraca警告信息計算一個字符串的長度號(返程)(INT到無符號整數))的爲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

您遇到的問題是operator-()返回一個有符號值,而不是無符號值。因爲在你的日常活動中,你知道價值永遠是積極的,你可以添加一個表演到size_t,而不用擔心標誌出錯。

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

return (size_t)(str - strCopy); //C 
相關問題