C语言中CreateThread怎么传递形参例子
时间: 2023-05-12 20:05:26 浏览: 153
可以使用结构体来传递参数,例如:
```
#include <stdio.h>
#include <windows.h>
typedef struct {
int num;
char str[20];
} ThreadParams;
DWORD WINAPI ThreadFunc(LPVOID lpParam) {
ThreadParams *params = (ThreadParams*)lpParam;
printf("num = %d, str = %s\n", params->num, params->str);
return 0;
}
int main() {
ThreadParams params = { 123, "hello" };
HANDLE hThread = CreateThread(NULL, 0, ThreadFunc, ¶ms, 0, NULL);
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
return 0;
}
```
这个例子中,我们定义了一个结构体 `ThreadParams`,包含一个整数和一个字符串。在 `main` 函数中,我们创建了一个 `ThreadParams` 类型的变量 `params`,并初始化它的成员。然后,我们调用 `CreateThread` 函数创建一个新线程,并将 `ThreadParams` 变量的地址作为参数传递给线程函数 `ThreadFunc`。在 `ThreadFunc` 函数中,我们将参数转换为 `ThreadParams` 指针,并输出其中的成员。最后,我们等待线程结束并释放资源。
阅读全文