摘要:
一旦函数被编译并载入计算机中执行,它就会占用一块内存,这块内存有一个地址,因此函数也有地址。 1. 定义一个函数指针 示例代码如下: void (*funcPtr)(); 这个例子将funcPtr定义为一个指向函数的指针,这个函数没有参数,返回值为空。 注:*funcPtr 两侧的括号是必须的,如果 阅读全文
摘要:
一、什么是大端和小端所谓的大端模式,就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 所谓的小端模式,就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 简单来说:大端——高尾端,小端——低尾端 举个例子,比如数字 0x12 34 56 78在内存中的表示形式为: 1) 阅读全文
摘要:
联合体用途:使几个不同类型的变量共占一段内存(相互覆盖) 结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体 自定义数据类型 总结: 声明一个联合体: union abc{ int i; char m; }; 1. 在联合体abc中,整型量i和字符m公用同一内存位置。 2. 当一个联合被说 阅读全文
摘要:
一、什么是字节对齐? 在现代计算机中,内存空间都是按照字节(byte)划分的。从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是,访问特定类型的变量的时候经常在特定的内存地址访问,这就需要各种类型的数据按照一定规则在空间上排列,而不是顺序地一个接一个地排放,这种所谓的规则就是字节对齐。 阅读全文
摘要:
参考博客:https://blog.csdn.net/Littlehero_121/article/details/111171045 阅读全文
摘要:
变量1. 局部变量普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。 普通局部变量存储于进程栈空间,使用完毕会立即释放。 静态局部变量使用static修饰符 阅读全文
摘要:
malloc()函数 malloc的全称是memory allocation,中文叫动态内存分配。 原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指 阅读全文
摘要:
C语言编译过程为:预处理-->编译-->汇编-->链接 1. 编译过程 编译过程又可以分成两个阶段:编译和汇编。 编译 编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含两个主要阶段: 编译预处理 读取c源程序,对其中的伪指令(以# 开 阅读全文