C语言创建的线程里如何调用另一个源文件函数
时间: 2024-05-30 09:14:33 浏览: 146
你可以使用函数指针来调用另一个源文件中的函数。首先,在调用线程所在的源文件中定义一个指向该函数的函数指针,然后在创建线程时将该指针作为参数传递给线程函数。在线程函数中,可以通过该函数指针调用另一个源文件中的函数。具体实现可以参考以下示例代码:
//file1.c
#include <stdio.h>
#include <pthread.h>
void func2(int arg);
void *thread_func(void *arg) {
void (*func_ptr)(int) = arg;
//调用另一个源文件中的函数
func_ptr(10);
pthread_exit(NULL);
}
int main() {
pthread_t tid;
//创建线程并传递函数指针作为参数
if (pthread_create(&tid, NULL, thread_func, func2) != 0) {
printf("Failed to create thread.\n");
return -1;
}
pthread_join(tid, NULL);
return 0;
}
//file2.c
#include <stdio.h>
void func2(int arg) {
printf("Function arg: %d\n", arg);
}
在上面的示例代码中,file1.c中的main函数创建了一个线程,并将func2函数的指针作为参数传递给线程函数thread_func。在thread_func中,它首先将传递的参数强制类型转换为一个函数指针,然后它使用该指针调用了file2.c中的func2函数,并将一个参数10传递给它。
阅读全文