总结:
1、
int strlen1(char *str)
printf("%d\n", strlen1("hello haizei"));
这样往函数里传一个常量的地址,而函数里是用变量的地址来接收的,会出错。
因为,变量地址是无法接收常量地址的,要改成常量地址,如下:
uint64_t strlen1(const char *str)
2、
uint64_t可以避免超过2G的字符串传进来接收不下的问题。(为什么不是避免超过4G的字符串?因为每个字符有一个符号位)
总结:
1、
int strlen1(char *str)
printf("%d\n", strlen1("hello haizei"));
这样往函数里传一个常量的地址,而函数里是用变量的地址来接收的,会出错。
因为,变量地址是无法接收常量地址的,要改成常量地址,如下:
uint64_t strlen1(const char *str)
2、
uint64_t可以避免超过2G的字符串传进来接收不下的问题。(为什么不是避免超过4G的字符串?因为每个字符有一个符号位)