当前位置:   article > 正文

XCode调试错误

本地文件%d被改为%zu

1. 警告Conversion specifies type'int' but the argument has type'size_t'

代码:

#import<Foundation/Foundation.h>
int main(int argc,const char * argv[]){
        const char *words[4]={"mother","father","sister","ms"}; 
        int wordCount=4;
        int i;
        for(i=0;i<wordCount;i++){
             NSLog(@"%s is %d characters                          long",words[i],strlen(words[i])); 
         }
         return (0); 
}

解决:
把%d改为%zu就没有警告了

分析:

%d是输出数字整数,警告里面的size_t是unsigned int

size_t 和int的区别是
size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。
size_t的真实类型与操作系统有关,在32位架构中被普遍定义为:
typedef unsigned int size_t;

而在63位架构中被定义为:
typedef unsigned long size_t;
size_t在32位架构上是4字节,在64位架构上是8字节,在不同架构上进行编译时需要注意这个问题
int在不同架构下都是4字节
int是带符号书,size_t是无符号数

转载于:https://www.cnblogs.com/cc-Cheng/p/3312895.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/208852
推荐阅读
相关标签
  

闽ICP备14008679号