【发布时间】:2020-09-26 22:44:03
【问题描述】:
我正在学习使用 C 进行线程化,我对给出的示例有点困惑。他们声明了一个函数print_name,其返回值为void,但随后它返回了一个字符串——如何以及为什么?函数print_name 接受一个名为name 的参数,但它是void 的指针; void 类型的变量是什么意思,它如何接受字符串?
main.c
#include <stdio.h> // I-O
#include <pthread.h> // threading
void *print_name(void *name)
{
puts(name);
return name;
}
int main(int argc, char const *argv[])
{
pthread_t thread_id;
pthread_create(&thread_id, NULL, print_name, "ha ones be eilat");
pthread_join(thread_id, NULL);
return 0;
}
使用gcc编译和运行
$ cc main.c -o main -Wall -pthread && ./main
ha ones be eilat
【问题讨论】:
-
不是
void,而是void *。 -
@AnttiHaapala Wdym,在哪里?
标签: c