strlen()函数警告

img

警告:[Warning] comparison of integer expressions of different signedness: 'size_t' {aka 'unsigned int'} and 'int' [-Wsign-compare]

望采纳


您的代码中似乎有一个比较两个整数表达式,其中一个表达式的类型为size_t,另一个表达式的类型为int。由于size_t是一个无符号整数类型,而int是带符号整数类型,因此这两个类型不兼容,可能会导致比较不准确。

为了解决这个问题,您可以在比较两个表达式之前将其中一个表达式的类型转换为与另一个表达式相同的类型。例如,如果您正在比较一个size_t变量和一个int变量,则可以使用以下代码:

if ((int)size_t_variable == int_variable) {
  // Do something
}

strlen的返回值是size_t,并不是int,因此会有提示,可以忽略或者max定义为size_t,用个"%zu"输出。