当前位置: 首页 > 工具软件 > 筑基 > 使用案例 >

游戏筑基开发之menset底层实现及C语言项目常见问题解决方案(C语言)

虞航
2023-12-01

游戏筑基开发之menset底层实现及C语言项目常见问题解决方案(C语言)

1.menset底层实现细节

void *memset(void *s, int ch, size_t n);

函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s。

具体实现细节:

	// 把当前指针指向地址的元素全部清零
	//#define N 20
	//int a[N];
	memset(a, 0, sizeof(a) * N);
	//实现细节
	void *memset(void *s, int ch, size_t n)
	{
		for (int i = 0; i < n; ++i)
			*((char*)(s + i)) = ch;
	}

2.两个.h文件之间重复引用,即#include " "

编译器按照正常逻辑执行,会出现引用死循环

3.在一个.h文件中定义一个结构体,在另外一个中如果引入其头文件,仍然可以使用其中结构体。

  如.h文件中的结构体typedef定义之后,在另外一个.h文件中未引入该头文件,则文件中不能使用typedef定义的别名。只能使用struct 结构体名称*,即结构体指针类型

  注意:必须是该结构体的指针类型。通过这个方式告知编译器:虽然未引入头文件,但是在之后的执行过程中,会让该结构体指针指向一片有效的内存空间。即不是野指针。

 类似资料: