C语言
Ethan2048
这个作者很懒,什么都没留下…
展开
-
结构体内存对齐
基本对齐原则 1)结构体内成员按自身按自身长度自对齐(该成员的起始位置的内存地址必须是它自身长度的整数倍)。 2)结构体的总大小为结构体的有效对齐值的整数倍 结合以上原则,可以知道 char - 位于1的整数倍地址,也就是从0-9(几任何起始地址) short - 位于2的整数倍地址,也就是0、2、4...这类地址 int - 位于4的整数倍地址,也就是0、4、8.....原创 2018-11-19 18:27:54 · 165 阅读 · 0 评论 -
高级指针类型判断
Q. 解释下列声明的含义 1.int *x[10] 2.int (*x)[10] 3.int (*x[10])(int) 4.int (*x)(int)A.以上各个声明含义如下 1.一个含有10个指针的数组,每个指针指向一个int类型数(declare x as array 10 of pointer to int) 2.一个指针,指向含有10个int类型的数组(...原创 2018-11-19 14:50:32 · 527 阅读 · 0 评论 -
大小端的判断
定义如下:大端: 数据高字节存放在内存低地址 小端: 数据高字节存放在内存高地址 判断方法 1. 使用联合体 #include <stdio.h> union _x_ { short a; char b; } x; int main(void){ x.a = 0x1122; printf("%s\n", (0x11 == x.b)?"Big":"Lit"); re...原创 2018-11-22 12:01:59 · 187 阅读 · 0 评论 -
C语言中函数的思考(可以返回局部变量吗)
原文地址: https://blog.csdn.net/u012252959/article/details/79346146 一般的来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了,因此如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针...转载 2018-11-22 18:13:20 · 1472 阅读 · 1 评论 -
手写字符串函数《一》
主要包括strcpy、strcat、strcmp、strlen、strchr、strstr #include <stdio.h> #include <stdlib.h> char *strcpy(char *dest, const char *src) { char *tmp = dest; while ((*dest++ = *src++) != '\0') ...原创 2018-11-23 10:02:18 · 427 阅读 · 0 评论 -
手写字符串函数《二》
主要包括strncpy、strncat、strncmp、strnlen、strnchr、strnstr #include <stdio.h> #include <stdlib.h> char *strncpy(char *dest, const char *src, size_t count) { char *tmp = dest; while (count) ...原创 2018-11-23 10:18:26 · 233 阅读 · 0 评论 -
手写内存操作函数
主要包括memset、memcpy、memmove、memcmp、memscan、memchr #include <stdio.h> #include <stdlib.h> void *memset(void *s, int c, size_t count) { char *xs = s; while (count--) *xs++ = c; return...原创 2018-11-23 10:24:30 · 456 阅读 · 0 评论