c - pthread/uthread 类型变量
问题描述
在研究 uthreads(来自 pthreads)时,我遇到了以下代码行:
uthread_t uthread_create (void* (*start_proc)(void*), void* start_arg)
我不确定uthread_create()
第一个参数是什么。它是否将指向没有特定类型的指针转换为指向 start_proc 类型的指针?有人可以澄清吗?
解决方案
第一个参数是一个函数指针。 start_proc
指向一个接受单个void *
参数并返回 a的函数void *
,在这种情况下,它是线程的入口点。此外,第二个参数是调用时uthread_create
将传递给的参数start_proc
。
像这样的函数将满足函数指针:
void *my_thread(void *p)
{
char *s = p;
printf("s=%s", s);
return NULL;
}
你可以这样称呼uthread_create
:
uthread_t tid;
char str[] = "test string";
tid = uthread_create(my_thread, str);
推荐阅读
- ocaml - 四叉树迷宫中的 OCaml 寻路
- javascript - 尝试检索页面上元素的值时未定义
- grid - 选择 Dynamics CRM 网格中的所有行
- webpack - 如何使用 webpack 仅编译 LESS 文件
- javascript - 使用量角器配置为 Allure 中的多个浏览器截屏
- python - 扩展 pandas DataFrame 列中的整数范围
- performance - EF 6.2代码优先,简单查询耗时很长
- php - 在 preg_match_all 之后,如果它在另一行中,如何获取该值
- python - 首先前瞻,然后在前瞻匹配后面寻找最接近的匹配捕获组。Python 中的正则表达式
- mysql - 查找正好包含两个给定孩子的单亲 id