1. inline关键字
在C++中,inline关键字用于指定函数应该被内联。
当一个函数被内联时,它的代码将直接插入到调用该函数的代码中,而不是作为单独的函数调用
这可以提高程序的性能,因为它减少了函数调用的开销,并提高了数据访问的速度。但是,内联函数也有一些缺点,例如可能会增加代码的大小,并且可能会导致多个定义之间的冲突。
要使用inline关键字,只需将其放在函数声明之前即可
inline的适用范围:一般适用代码量小但调用频繁的函数
注意 inline是一种用于实现的关键字,放在函数的声明前面是无效的,其次也可以放在头文件函数的定义里面。
2.彻底弄懂 typedef struct和struct定义结构体的区别
想要弄清楚 typedef struct和struct定义结构体的区别这一个问题,我们需要从c和cpp两个语言环境中去考虑,那么一个问题就变成了两个问题
- c 中typedef struct和struct定义结构体的区别 答案:声明变量的时候可直接省略struct
- cpp 中typedef struct和struct定义结构体的区别 答案:控制结构体变量的访问方式
- ps:当然这两个作用在cpp时是同时存在的,下面会举例子
前菜
typedef为C语言的关键字,作用是为一种数据类型定义一个别名。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型
如果你扒过一些库的源码的话,你会发现它们也会使用typedef给简单的数据类型重新起一个复合自己代码风格的名字,例如:
typedef signed short VMF_S16;
typedef unsigned int VMF_U32;
VMF_U32 = 6; //VMF_U32 就相当于 unsigned int
typedef VMF_U32 _OK; // 必要时还会有多重别名, 此时OK被某个方法中赋值后就可以直接 return _OK;
上肉
注意,下面我只贴vs2019的截图,因为有一个地方虽然只是颜色的区别,但非常容易让我们明白typedef struct和struct定义结构体的区别
该截图只是说明struct 前面加了typedef ,那么在变量声明时可忽略struct
前面所说的控制结构体变量的访问方式:其实就是下面代码中 typedef 将白色改为绿色的过程。
不加 typedef,我们在结构体后面所写的都是一个实实在在的变量。
加了typedef,我们在结构体后面所写的才是结构体的别名,既然是别名,当然还未声明变量,想要访问那就必须先显示的声明一个变量才可以。