我有一些我无法理解的代码。
typedef double Align;
union header{
struct{
union header *ptr;
unsigned int size;
}s;
Align x;
};
typedef union header Header;
因此,在创建了这个联盟后,它以一种奇怪的方式使用。
Header *morecore(unsigned);
然后将其称为普通函数
Header *p;
p = morecore(nunits);
这究竟是如何工作的?在任何地方都没有任何代码可以说明这个"功能"的工作原理。
答案 0 :(得分:3)
Header *morecore(unsigned);
此函数返回类型为Header
的指针。因此,返回值被分配给相同的类型
Header *p = morecore(nunits);
所以基本上函数morecore()
在内部执行一些操作并返回一个指针,并将此返回值赋给p
。
答案 1 :(得分:1)
Header *morecore(unsigned);
是名为morecore
的函数的前向声明,它接受类型为unsigned
的1个参数,并返回指向Header
的指针。它与Header的定义方式无关。此函数在代码中的某个位置与其正文一起定义。