1、提示缺少分号和括号,cJSON.h文件没有修改。
2、使用的编译器语法检查不完善,版本过低导致无法识别。
3、缺少了size_t的定义,size_t的定义在string.h头文件中存在。
我再次认真的看了下 size_t的使用,它是为了使程序可以跨平台,是代码具体较好的可移植性。
size_t在32位系统中占4个字节,而在64位系统占8个字节。
我想这是 系统判断其不正确的原因所在吧。
给出(size_t)i<strlen(str1)那么就通类型比较了,就不存在问题了。
而int类型的i和strlen(str1)返回类型是 size_t在不同的操作系统可能就不一样。
所以,系统检测出错。
但是,我不知道为什么,改成 i<(int)strlen(str1)就还是不行呢?
size_t是C内部预定义的一个类型:typedef
unsigned
int
size_t
因此这句代码相当于:unsigned
int
size=sizeof(long
long)
而sizeof()函数的功能就是求变量在内存中所占的字节数
因此,这句话的意思是将long
long类型在内存中所占的字节数赋值给无符号整型变量size