typedef 的一个错误

请看下面一个结构体定义,它会在什么时候报错?

typedef struct tagST
{
int a;
int b;
typdef union
{
struct BF *pstNew;
}new;
}XXX;
如果你能答道是在 “typdef union” 行报错,而且也知道是为什么,那么你就没有必要看下去了。否则请继续……

错误在于:

typedef struct tagST
{
int a;
int b;
typdef union
{
struct BF *pstNew;
}new; /这里只是声明/
}XXX;
于是声明中嵌套声明,是不是很奇怪,这里面需要的是一个定义,而不是声明。

正确的写法

typedef struct tagST
{
int a;
int b;
union
{
struct BF *pstNew;
}new; /这里是一个匿名的union 定义/
}XXX;

另外一种正确的写法

typdef union
{
struct BF *pstNew;
}newST;
typedef struct tagST
{
int a;
int b;
newST stNew;
}XXX;
声明了一个 union ,然后在结构体里面使用。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,882评论 0 9
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,180评论 18 399
  • 重点掌握 3 类对象和方法 对象就是一个物体 类的独特存在就是一个实例,对实例进行操作叫做方法。方法可以应用于类或...
    Coder大雄阅读 5,040评论 0 2
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 5,780评论 1 6
  • 2017年11月16日 慢读《非暴力沟通》 第九章 爱自己 让生命之花绽放 非暴力沟通最重要的应用也许在于~爱护自...
    梧桐居阅读 1,670评论 0 0

友情链接更多精彩内容