【发布时间】:2017-08-30 08:00:12
【问题描述】:
void* PrintHello(void *threadid)
{
long tid;
tid =(long)threadid;
printf("Hello World! It's me, thread #%ld!\n",tid);
pthread_exit(NULL);
}
我想知道变量声明的每个元素代表什么,是否有更简单的方法(更具可读性/类似性)来仅 printf?
# =
% =
ld = 长整数
! = 不是吗?
\n = 换行
此外,我们的幻灯片上的指针似乎以两种不同的方式书写。
有:
void* function_name(void* args)
还有:
void* function_name(void *args)
星号位置的意义是什么?在这个例子中哪个看起来是正确的?
【问题讨论】:
-
除了你列出的那个之外,它们只是字符。
-
@Dai:不是真的。
%存在 (%ld)。 -
%ld指的是tid变量,#和!只是普通字符。 -
空格被忽略
void* args、void *args、void * args和void*args都是一样的意思。 -
您的
PrintHello函数调用未定义的行为,因为您未能返回void *。