一个关于结构未解决的困惑

一、问题描述:结构别名问题,一个是BiTree, 一个是*bi。

第一个别名在主函数体外可以用,内部不能用;第二个都可以用。

如果不写第二个别名,第一个在主函数体内外都可以用。

二、问题代码

 1 #include<stdio.h>
 2
 3 typedef struct BiTree{
 4      char data;
 5      struct BiTree *lchild;
 6      struct BiTree *rchild;
 7     }BiTree,*bi;
 8
 9 typedef struct AssistNode{
10      BiTree *e; // 这里这样是没有问题的
11      int isFirst;
12 }AssistNode,*assist;
13
14 void main(){
15      //这样是没问题的
16      assist a1;
17      a1= (assist*)malloc(sizeof(assist));
18
19      /*这里就不行了,只能使用第二种写法,写作AssistNode和BiTree都报用作表达式非法
20      AssistNode *a2;
21      a2= (AssistNode*)malloc(sizeof(AssistNode));*/
22
23      a1->isFirst= 0;
24      printf("%d", a1->isFirst);
25      getchar();
26 }

三、可能原因

别名或许有作用域?

时间: 2024-08-10 15:07:53

一个关于结构未解决的困惑的相关文章

使用CocoaPods的pod install 遇到的错误,未解决(Xcode版本v6.4,Mac OS版本v10.10.4)

转载请标明出处:http://blog.csdn.net/android_ls/article/details/47059957 一.CocoaPods 是一款很好的依赖管理工具,其安装步骤大致如下: 1.首先确保开发环境中已经安装了 Ruby(一般安装了 XCode,Ruby 会被自动安装上) 建议使用淘宝提供的 Gem源,在终端执行下列命令: $ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.t

String,Array等原生引用对象prototype问题(打X未解决,打勾已解决)

1.2014年6月29日 10:51:44    原型模式     疑问一:    String类型中,动态为其加入函数时候,可以通过String.prototype.[[functionname]] = function(){}方式或者直接string.[[functionname]] = function(){},但是遇到了一个问题,当创建一个实例时,只有前者可以运行,后者报错找不到该方法,如:var msg = 'hello world' ; msg.[[functionname]] ; 

阿里云香港机房故障(到现在还未解决)

早上10点被客户电话叫醒,到现在问题还未解决.联系了就说是香港网络运营商问题,会尽快修复,可连具体时间都无法提供,难道这这么等下去? 我们的客户都快爆发了,这次真害死人了. 平时看阿里挺牛B的才买了他们的云服务. 可是作为一个云服务商,遇到这种问题,竟然没有一点备用方案. 要这样的话我们使用阿里云服务还有什么保障. 有没有跟我们一样悲剧的朋友.T T. 官方公告 阿里云香港region访问异常故障 尊敬的用户,目前香港机房故障仍在处理中.对由此异常导致的服务中断,我们深表歉意.同时我们会尽快启动

html5页面平滑切换实现以及问题(未解决,欢迎讨论)

注:本文是基于手机端 Hybrid APP 讨论,而不是普通的PC端网页 >> 之前的页面跳转方式: 比如有这两个页面:A.html  B.html,  A B 是纯HTML实现,没有采用其他UI框架 A-->B 的跳转方式为 location.href="B.html"; 效果:闪屏刷新,用户体验太差 目前的实现方式: 定义一个母页面里面包含两个iframe用来加载A.B等html页面: _ghost.html: html: js: 母页面初始化的时候获取手机屏幕宽

Q : office word 2007 段首按退格键无法退到上一行 -- 暂未解决

问题描述: 1.ctrl+退格 能退到上一行,但单独退格键就不行:但是本行可以使用Backspace回退: 2.回车之后首行缩进,新开一个段落,但是紧接着使用退格键无法合并段落(Backspace键不起作用),但是除却段首之外一切删除字符和回退正常: 3.光标放在上一行末尾,然后按Delete键也可以合并段落 Backspace在段首想要合并段落不起作用,究竟是何原因,如果设置和解决? Q : office word 2007 段首按退格键无法退到上一行 -- 暂未解决

AIX系统errpt运用(暂未解决)

在AIX中,errpt用于报告系统软硬件相关的错误日志信息,errpt 命令将从错误日志中的条目生成一个错误报告,但是它并不进行错误日志分析:对于错误分析,可以使用 diag 命令,不带参数简单列出所有的错误, [email protected]:/# errptIDENTIFIER TIMESTAMP  T C RESOURCE_NAME  DESCRIPTIONE87EF1BE   0507150014 P O dumpcheck      The largest dump device i

未解决符号表,导出符号表和地址重定向表

让我们总结一下:编译器把一个cpp编译为目标文件的时候,除了要在目标文件里写入cpp里包含的数据和代码,还要至少提供3个表:未解决符号表,导出符号表和地址重定向表.     未解决符号表提供了所有在该编译单元里引用但是定义并不在本编译单元里的符号及其出现的地址.     导出符号表提供了本编译单元具有定义,并且愿意提供给其他编译单元使用的符号及其地址.     地址重定向表提供了本编译单元所有对自身地址的引用的记录.     链接器进行链接的时候,首先决定各个目标文件在最终可执行文件里的位置.然

openSUSE13.1无法打开Yast的安装/移除软件管理软件的解决办法&#183;(未解决,临时方法)

没有发现解决方案: 可用 sudo /sbin/yast2 用命令行的GUI替代...虽然差不多 决定一会update一下试试 openSUSE13.1无法打开Yast的安装/移除软件管理软件的解决办法·(未解决,临时方法),布布扣,bubuko.com

Win8.1想要卸载openSUSE出现问题(未解决)

因为在蜥蜴上的Python被玩坏了,所以想要卸载重装.结果在Windows下的EasyBCD打开提示错误: The Boot Configuration Data Store Could Not Be Opened - The System Cannot Find The File Specified FQGoogle了半天,最终不知道在哪里看到的“Active”,把C盘 用DiskGenius Active了一下,好不好使就看我重启之后了 Win8.1想要卸载openSUSE出现问题(未解决)