C51注意点

1、sizeof()和strlen()的区别

       strlen指字符的长度           sizeof指文件或者数据占的内存(字节)

       例:

        char str[20]="0123456789";

        int a=strlen(str);             //a=10;
        int b=sizeof(str);             //b=20;
         int b=sizeof(str);             //b=20;

2、snprintf函数用法

       int snprintf(char *buff, size_t n, const char * format, ...);

      函数说明:将可变个参数(...)按照format格式化成字符串,然后将其复制到buff中,最多从(...)中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n 的话,将不会溢出。

      函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值

      例:

snprintf(s,100,"%.*S",3,"abcd");

  s的值为abc,      %.*s 表示有两项, 第一项指定了长度,第二项则是%s的内容,所以取前三位

3.memcpy函数用法

void *memcpy(void *dest, const void *src, size_t n);

函数说明:从源 src 所指的内存地址的起始位置开始拷贝n个字节到目标 dest 所指的内存地址的起始位置中

4.memcmp函数用法

int memcmp(const void *buf1, const void *buf2, unsigned int count);

函数说明:比较内存区域buf1和buf2的前count个字节。

函数返回值:当buf1<buf2时,返回值小于0

                      当buf1==buf2时,返回值=0

                      当buf1>buf2时,返回值大于0

猜你喜欢

转载自blog.csdn.net/qq_39815222/article/details/80529000
C51