
C语言随记
随手笔记
Ben_T
这个作者很懒,什么都没留下…
展开
-
细谈野指针
野指针就是指针指向的位置是不可知的(随机的,不正确的,没有明确限制的)原创 2023-06-10 22:44:14 · 151 阅读 · 0 评论 -
static关键字
c.静态成员变量的访问:类名::静态成员变量名 或 对象.静态成员变量名。b.静态成员函数不能调用非静态成员函数。而非静态成员函数可以调用静态成员函数。a.静态成员函数没有this指针,不能访问非静态成员(变量、函数)。a.静态成员变量需在类中声明,在类外定义(const修饰除外)。b.静态成员变量为所有类对象共享,并没有包含在具体的对象中。a.变量的储存区域在全局数据区的静态常量区。b.变量的作用域由当前程序变为整个文件。a.函数的作用域由当前程序变为整个文件。a.储存区由栈变为静态变量区。原创 2023-05-21 22:03:40 · 120 阅读 · 1 评论 -
结构体和共用体的区别
结构体和共用体的主要区别在于存储方式的不同。原创 2023-05-14 14:26:14 · 383 阅读 · 0 评论 -
回调函数中同步回调和异步回调的区别
如果用户层B把函数的指针(地址)作为参数传递给底层驱动A,当这个指针在A中被用为调用它所指向的函数时,我们就说这是回调函数。第一种方法B是无法知道数据d何时会发生变化,只有B自己定时去读取或者在需要的时候去取数据。第二种方法是A在数据发生变化后主动将数据告诉B,效率比第一种高。其实回调函数就是一个通过。转载 2023-05-14 10:38:36 · 545 阅读 · 0 评论 -
C语言中字节对齐
在现代计算机中,内存空间都是按照字节划分,理论上可以从任何起始地址访问任何变量,但是在实际中访问特定变量时经常在特定的内存地址中的访问(例如访问结构体中的指定变量),这时就需要各种数据类型按照一定的规则在内存中存放,而不是一个一个顺序的存放,这就是对齐。原创 2023-05-03 19:04:29 · 188 阅读 · 0 评论 -
内联函数 —— C 中关键字 inline 用法解析
在C语言中,调用函数时,会进行函数入栈 ,执行,函数出栈的操作。这些操作执行都需要时间,并且函数入栈出栈 ,会消耗栈内存或栈空间。对于一些频繁调用且代码段不多的函数来说,在入栈出栈时占用很多时间和栈内存。为了解决这个问题,C语言引入了inline修饰符,表示为内联函数。看下面的例子这个就是内联函数的用法;在程序编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来进行替换。这样做会增加目标程序的代码量,但是在执行过程中就没有函数入栈出栈的操作,减少了程序的执行时间。原创 2023-04-23 22:03:47 · 780 阅读 · 1 评论 -
static关键字
链接属性external的变量,所有源文件中的所有函数都可以访问他。只要变量并非声明于代码块内部或者函数定义内部,他在缺省情况下的链接属性即为external。如果一个变量声明于代码块内部,在他前面添加extern关键字将使它所引用的是全局变量而非局部变量。原创 2023-04-22 22:02:17 · 79 阅读 · 1 评论 -
typedef 和define 的区别
define 没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。如果需要解除掉之前声明的宏定义。可以使用 #undef name,这个命令使预处理器忘记name的所有宏定义。typedef 通常用于 类型定义,比如指针,数组,结构体等。原创 2023-04-22 20:39:18 · 2467 阅读 · 1 评论