比如像下面: typedef struct StackNode { SElemType data; struct StackNode * next; }StackNode

比如像下面: typedef struct StackNode { SElemType data; struct StackNode * next; }StackNode,第1张

这个是一个typedef 的用法

typedef 的用法有:

1 typedef int INT; INT a ;等价于 int a;

2数组类型 typedef int A[10]; 就是说明以后用A定义变量相当于定义一个有10个元素的的int数组

eg A b;等价于 int b[10]; 这个是与法规定的,没有为什么,记住就行

3函数指针类型 typedef void (fun)(int,int); 你看 把void重新命名为函数指针变量fun,表示以后用fun定义的变量是 void 类型的带有一个参数的函数的指针变量,例如:

假设前面有函数 :void print(int a){printf("%d\n",a);}

fun a=print; a(10);//就会输出10

4就是你那个,我用基本数据类型讲原理:

typedef int INT,LPINT;

前面那个你懂得,我讲述后面那个,你可以这么理解 LPINT前面有个号说明是用来定义指针

变量的,因为 int 等价于LPINT 所以LPINT加上间访内存后才于int等价,所以LPINT等价于:

int ;例如 int a;等价于 LPINT a;

所以LZ你那个LinkStackPtr实质就是定义 struct StackNode 类型。语法规定这样没办法,只能记住,为了方便记忆。我把技巧写下

把typedef 去掉,看看定义的是什么类型,那么你以后用哪个标识符定义的就是你看到的类型;

例如:typedef struct StackNode StackNode,LinkStackPtr;//先去掉,typedef

struct StackNode StackNode,LinkStackPtr;//发现前者是结构体变量,后者

//是指针变量

所以StackNode用来定义变量,LinkStackPtr用来定义指针变量,LZ记住就行,记住了就会用了,我但当初也是这样,努力加油

出现上述问题可能是格式化两次hadoop,导致没有datanode

解决方法1:重启linux,再使用start-dfssh和start-yarnsh 重启一下hadoop

解决办法2:找到hadoop安装目录下 hadoop-241/data/dfs/data里面的current文件夹删除

然后从新执行一下 hadoop namenode -format

再使用start-dfssh和start-yarnsh 重启一下hadoop

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/meirong/11242255.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-11-25
下一篇2023-11-25

发表评论

登录后才能评论

评论列表(0条)

    保存