@TOC

前言

一、函数指针做结构体成员:

结构体内不可以放函数,但是可以放函数指针。

int sum(int a,int b) { return a + b; }

struct Node

{ int a;

int ( * p)( int a, int b); / / 成员是函数指针

} no = { 12, sum };

c语言 函数指针做结构体成员,结构体的大小,联合体共用体 union_函数指针

二、结构体的大小:

结构体的大小,用 sizeof 计算,并不是简单是计算结构体所有成员之和。

sizeof ( struct Node );

c语言 函数指针做结构体成员,结构体的大小,联合体共用体 union_共用体_02

三、联合体共用体:

联合共用体:所有成员共用一块空间,起始地址一样

sizeof 得到最大成员的空间。

union Un

{ int a; short b; char c; }; union Un no={ 6 }; / / 只能初始化1个 数据,即第一个数据。修改一个成员,其他成员也会改变。 no.a=123;

c语言 函数指针做结构体成员,结构体的大小,联合体共用体 union_函数指针_03

注意: 数值在可以表示的范围内正常表示,数值不在可表示的范围内,存余数。

总结