有人可以指点我一些很好的资源来理解和使用嵌套类吗?我有一些材料,如编程原理和类似IBM知识中心 - 嵌套类的东西
但我仍然无法理解他们的目的.有人可以帮帮我吗?
我知道这听起来有点奇怪,但有时手动编辑比合并和解决冲突更方便.我希望GitHub/GitLab merged在我手动"合并"的分支上显示标签.我能这样做吗?
这是我的代码.这很简单.
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *func(void *arg)
{
printf("ID=%d\n", *(int*)arg);
pthread_exit(NULL);
}
int main()
{
pthread_t pt[4];
int i;
for (i = 0; i < 4; i++)
{
int temp = i;
pthread_create(&pt[i], NULL, func, (void*)&temp);
}
sleep(1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我编译了它:
gcc p_test.c -lpthread
我跑了 它印了2 2 3 3.我又跑了 它印了2 3 3 2.
我的问题是:
为什么2或3打印两次?
为什么没有打印1 3 2 0或任何其他结果?
请参阅https://opensource.apple.com/source/file_cmds/file_cmds-82/touch/touch.c第 36 行:
__RCSID("$FreeBSD: src/usr.bin/touch/touch.c,v 1.20 2002/09/04 23:29:07 dwmalone Exp $");
Run Code Online (Sandbox Code Playgroud)
这行是什么意思?该字符串是什么__RCSID以及它的含义是什么?这是版本控制的一些标准消息吗?
在cdefs.h我发现
#ifndef __RCSID
#define __RCSID(s) __IDSTRING(rcsid,s)
#endif
Run Code Online (Sandbox Code Playgroud)
和
#define __IDSTRING(name, string) static const char name[] __used = string
Run Code Online (Sandbox Code Playgroud)
但我还是不知道它们是做什么用的。