windows c语言创建线程并向函数传递多个参数,不使用windows api
时间: 2024-02-21 18:00:00 浏览: 122
在 Windows 系统中,我们可以使用 Windows API 来创建线程并向函数传递多个参数,但是如果不使用 Windows API,我们可以使用 C 语言自带的线程库 pthread.h 来创建线程并向函数传递多个参数。以下是一个示例代码:
```c
#include <stdio.h>
#include <pthread.h>
void *thread_func(void *arg) {
int a = *(int*)arg; // 获取第一个参数
int b = *((int*)arg + 1); // 获取第二个参数
printf("Thread function: %d + %d = %d\n", a, b, a + b);
pthread_exit(NULL);
}
int main() {
pthread_t tid;
int args[2] = {10, 20}; // 定义参数数组
pthread_create(&tid, NULL, thread_func, (void*)args); // 创建线程并传递参数
pthread_join(tid, NULL); // 等待线程结束
return 0;
}
```
在上面的代码中,我们定义了一个 `thread_func` 函数来处理线程的逻辑,同时将参数传递给该函数。在 `main` 函数中,我们创建了一个 `args` 数组来存储参数,然后将该数组作为参数传递给 `pthread_create` 函数来创建线程。在 `thread_func` 函数中,我们从参数中获取了两个整型参数,并输出它们的和。最后,我们使用 `pthread_join` 函数来等待线程结束。
阅读全文