导入 关于C语言的底层逻辑剖析,此系列我们就要正式进入C语言的深入学习,关于学编程这件事呢,其实还是那句话,学习编程这件事是极其枯燥也是非常困难的,但是要相信坚持一定会有收获,共勉。 语句 什么是语句? 在C语言中大致有以下几种语句 1.表达式语句; 2.函数调用语句; 3.控制语句; 4.复合语句; 5.空语句; 1...
置位1的作用主要是为了标记obj被weak引用了,当dealloc时,runtime会根据weakly_referenced标志位来判断是否需要查找obj对应的weak_entry_t,并将引用置为nil。 // Template parameters.enumHaveOld{DontHaveOld=false,DoHaveOld=true};enumHaveNew{DontHaveNew=false,DoHaveNew=true};enumCrashIfDeallocating{DontCrashIf...
全局变量,不管 是 否被初始化,其生命周期都是整个程序运行过程中,为了节省内存空间,在当前文件中 使用extern来声明其它文件中定义的全局变量时,就不会再为其分配内存空间。 3.register的变量在由内存调入到CPU寄存器后,则常驻在CPU的寄存器中,因此register将 在很大程度上提高效率,因为省去了变量由内存调入到寄存器过...
CPU执行一条特定指令的详细过程是取指、译码、执行、访存、回写,这是一个非常详细的硬件底层细节,本节将从软件逻辑的角度看CPU执行多条指令的过程。 这个过程描述起来很简单,就是一个循环: 1.以PC寄存器中值为内存地址A,读取内存地址A中的数据 2.CPU把内存地址A中的数据作为指令执行,具体执行过程:取指、译码、...
1.ObjC类与方法的底层实现逻辑 (1)基本概念 根类:在OC中几乎所有类都继承自NSObject,NSObject类就是根类,根类的父类为nil 元类:在我们平时开发中会用到类方法和实例方法,但是在底层的实现中并没有这种区分,实际上都是通过实例方法去查找的,底层为了区分这两种方法,引入元类的概念,然后将实例方法存储在类中...
C++ 在游戏开发中应用广泛,不仅可以用于底层性能优化,还可以用于游戏逻辑的实现、游戏对象的管理等高层部分。它能够兼顾游戏的性能和开发效率,使得开发出的游戏具有高质量的图形效果和流畅的运行性能。结论 C++ 和 C 语言虽然有很多相似之处,但它们在语法、面向对象特性、内存管理和应用场景等方面存在着明显的差异。...
进行优化,比如上面 actionx4 部分直接试用 uint32_t 来进行一次性运算,在 duff's device 中并没有...
C语言的按位运算符已经非常接近底层操作了,包含六个基本运算符号: & 按位与 | 按位或 ~ 按位取反 ^ 按位异或 << 左移 >> 右移 在前三个里面呢,按位与,按位或,按位取反与本文开头的逻辑运算符相类似,只不过按位运算符是将一个数变为二进制之后对每一位进行计算。在STM32单片机开发中,我们最常用到...
1.2 基本操作实现的底层逻辑 为了更好的介绍这些基本操作,我们还是以创建、销毁、增删改查的顺序来进行介绍; 1.2.1 队列的创建与销毁 队列的创建 对于队列的创建实际上就是定义数据类型、定义队列变量以及初始化一个队列。那如果要定义一个数据类型,按照前面的介绍,队列的数据类型中至少有三个内容: ...
在send_msg函数中,我们传入msg_handler接口结构体作为参数,并通过调用函数指针来实现不同的处理方式。这样,即使需要新增处理方式,我们也只需要定义新的实现结构体并通过接口结构体传入即可,避免了对主逻辑代码的修改。 3.3 开闭原则的优缺点 3.3.1 适当使用开闭原则的优点 可扩展性:遵循开闭原则,软件系统可以更容易...