whsq888 发表于 2011-11-19 05:54:15

不知道你们见过没有,我反正第一次见这种写法

RT-Thread代码的\libcpu\arm\cortex-m4\cpuport.c 文件的rt_hw_stack_init函数中, 第二句的写法我是第一次见:

struct stack_contex_fpu * stack_contex_fpu;

我的理解是第一个stack_contex_fpu是结构类型名, 第二个stack_contex_fpu 为指针变量名; 类型名与变量名同名.
这种写法我第一次见, 你们见过吗? 还是我理解有问题?

aoe123 发表于 2011-11-19 06:18:59

这是常见的结构体指针呀

aoe123 发表于 2011-11-19 06:23:12

比如,先定义一个结构体
struct stack_contex_fpu
{
    //这里写你的成员
}
然后,你可以用这个结构体来定义变量或者指针

如定义变量:struct stack_contex_fpuMyVariable;

如定义指针:struct stack_contex_fpu*pMyVariable;

whsq888 发表于 2011-11-19 07:24:23

问题的重点是: 类型名与变量名 名字相同.

SoSong 发表于 2011-11-19 07:51:54

可以的,结构体定义时,甚至连类型名都不写都可以,直接定义对象名

mowin 发表于 2011-11-19 08:58:48

回复【3楼】whsq888
问题的重点是: 类型名与变量名 名字相同.
-----------------------------------------------------------------------

这个可以同

changhui0222 发表于 2011-11-19 09:09:53

这个确实可以同!

aureoleday 发表于 2011-11-19 09:23:00

恩,学习了

pilgrim_kevin 发表于 2011-11-22 11:54:10

struct stack_contex_fpu * stack_contex_fpu,

这里实际上是不同的:struct stack_contex_fpu是一个整体,表示一个类型。

whsq888 发表于 2011-11-24 08:47:25

哎,C语言水太深, 还得努力学习

19001579 发表于 2011-11-25 17:24:42

普通得不能在普通了
页: [1]
查看完整版本: 不知道你们见过没有,我反正第一次见这种写法