自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 [C库函数]strcat的内部实现

strcat函数的功能就是在一个字符串后面追加上另外一个字符串。char * strcat ( char * destination, const char * source );char* strcat(char* destination, char* source ){int ret = destination;while (*destination){destination++;}while (*destination++ = *source ++){;}return re

2022-05-25 10:45:04 218

原创 [C库函数]memset的内部实现

memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。void *memset(void *s, int c, size_t n);s指向要填充的内存块。c是要被设置的值。n是要被设置该值的字符数。返回类型是一个指向存储区s的指针。void *memset(void *s, int c, size_t n);{char *xs = s; while (count--) *xs++ = c; return s;}...

2022-05-24 20:55:53 681

原创 [C库函数]memcpy的内部实现

memcpy函数是C/C++语言中的一个用于内存复制的函数,声明在 string.h 中。其原型是:void *memcpy(void *destin, void *source, unsigned n);作用是:以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。函数有三个参数,第一个是目标地址,第二个是源地址,第三个是数据长度。#include<stdio.h>void memcpy(void *dest, const void *s

2022-05-24 20:51:56 464

原创 C语言位运算

1、运算符(1)位与&,逻辑与&&;(2)位或|,逻辑或||;(3)位取反~;(4)逻辑非!逻辑操作:只有0(假)和 1(真);位操作:把数转化成二进制,每一位再进行与或非;异或:相同为0;不同为1;位与:与1位与无变化,与0位与为0;位或:与1位或为1,与0位或无变化比如:45 ^ 2345 : 10110123 : 01011145^23 = 0b111010 = 58;2、移位 左移位<< 右移位 >>(想象成开火车)对于

2022-05-24 18:57:10 183

原创 C语言内存对齐

为什么要进行内存对齐?如果不按照适合编译器要求的数据对齐,读写效率会受到影响。比如说32位编译器,int占用32位,char占用8位,如果char先存,一行就只剩下24位的空间大小,就存不下int型的32位,如果继续往下存的话就需要两个读周期,并对两次读出的结果的高低字节进行拼凑才能得到该4个字节数据。例题一struct struct1{double dda;char cda;int ida;};sizeof(struct1) = 16;例题二//32位系统#include<

2022-05-24 18:32:39 263

原创 C语言sizeof和strlen的区别

主要区别如下:1、sizeof是运算符,strlen是C语言标准库函数。2、 strlen 测量的是字符串的实际长度,以’\0’ 结束,返回结果不包括’\0’ 。3、而sizeof 测量的是字符的分配大小,它的参数可以是数组、指针、类型、对象、函数等。具体而言,当参数分别如下时,sizeof返回的值含义如下:数组-编译时分配的数组空间大小;指针-存储该指针所用的空间大小;类型-该类型所占的空间的大小;对象-对象的实际占用空间大小;函数-函数返回类型所占空间的大小;例题1:char *s

2022-05-24 17:49:49 14785 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除