使用 size_t 时 "not found" 的标准

Standard for "not found" when using size_t

当您进行数组搜索但未找到该值时,是否有标准使用什么值。 签名后我会 return -1。但是 size_t aka long unsigned.

呢?
   int find(int a[],int b, int n){
   for(int i=0; i<n; i++){
       if(a[i]==b)
           return i;
   }
   return -1;
   }

用size_t的时候就会想出这个。但这并不完美。

   long long int find(int a[],int b, size_t n){
   for(size_t i=0; i<n; i++){
       if(a[i]==b)
           return (long long int)i;
   }
   return -1;
   }

为了允许 size_t 类型具有负值,有一个 ssize_t 类型是有符号的。

您不能依赖 size_t 与 unsigned long 的等效性,因为它的体系结构特定。