★奥●义★ 发表于 2016-2-16 13:46:32

littlefish 发表于 2016-1-11 11:51
你好,非常感谢你的解答,让我略微理解了一些。但是我还是有一些困惑:
1、如果Task是指向结构体TaskDat ...

1、定义(or声明)指针,内存并没有分配整个结构体的空间,只是分配一个指针变量,一般是int的大小。
2.1、有可能调用,有可能根本就没有用。统一性和兼容性,函数指针与其指向的函数,参数必须保持一致。
2.1、可以这样理解。

★奥●义★ 发表于 2016-2-16 13:59:23

pkuzhx 发表于 2016-1-18 14:04
到底先有鸡还是先有蛋,我也刚开始学,一直搞不懂啊

“有穷性”。“确定性”。
结构体指针可以认为是一种类型,类比int*,long*,他们占的内存空间之一样的。(内存空间大小确定)
结构体也可以认为是一种类型,类比int,long,他们占的内存空间是此类型自身属性确定的。
对计算机(or MCU)来说,按照类型分配空间,但并不关心里面放的是什么鬼。
这是程序员要关心和明确的:里面放的是什么东西。
也许,恰好,结构体里包含了它自己的指针。

littlefish 发表于 2016-2-17 09:45:11

★奥●义★ 发表于 2016-2-16 13:46
1、定义(or声明)指针,内存并没有分配整个结构体的空间,只是分配一个指针变量,一般是int的大小。
2. ...

你好!非常感谢你的解答,我已经基本理解了。但是对于问题1我还是有困惑:我们在定义(声明)一个结构体指针变量的时候,编译器只是给该指针变量分配4bytes的空间,而不关注该指针变量所指的结构体类型是否存在以及这个结构体类型所占空间大小吗?因为这里结构体指针的定义是在结构体定义之前的,在定义结构体指针时编译器应该是不知道这个结构体存在和它所占的大小的。

★奥●义★ 发表于 2016-2-20 22:16:24

littlefish 发表于 2016-2-17 09:45
你好!非常感谢你的解答,我已经基本理解了。但是对于问题1我还是有困惑:我们在定义(声明)一个结构体指 ...

是。
你已经回答自己的问题了。

★奥●义★ 发表于 2016-2-20 22:25:51

★奥●义★ 发表于 2016-2-16 13:46
1、定义(or声明)指针,内存并没有分配整个结构体的空间,只是分配一个指针变量,一般是int的大小。
2. ...

从更严谨的角度思考。
int* p;//这是声明,声明只是告诉编译器:“我有一个叫 p 的指针变量,后面会用到。”
//什么地方(本文件或其他文件)给 p 赋值了,才真正在内存中分配空间。

littlefish 发表于 2016-2-22 09:16:22

★奥●义★ 发表于 2016-2-20 22:16
是。
你已经回答自己的问题了。

:handshake。。。非常感谢回答,虽然感觉这个结论有点难以理解,因为之前我一直都认为任何指针变量的声明(或是定义)都应该是以它所指向的变量类型存在为前提条件的,看来这个想法不是很科学。还是非常感谢你让我的认识又加深了。。。。:handshake

herosungod 发表于 2016-2-22 21:14:37

你的ADK4.0哪里来的?能共享吗?谢谢!我也正开始学8670,希望能加qq学习543273707

littlefish 发表于 2016-2-24 08:52:36

herosungod 发表于 2016-2-22 21:14
你的ADK4.0哪里来的?能共享吗?谢谢!我也正开始学8670,希望能加qq学习543273707

这个网站里面有人已经分享了,我就是这儿网站下载的。。。你找找。。。

herosungod 发表于 2016-2-24 09:50:39

littlefish 发表于 2016-2-24 08:52
这个网站里面有人已经分享了,我就是这儿网站下载的。。。你找找。。。

找过了,等级不够喔!能否传一份给我?万分感谢!

littlefish 发表于 2016-2-25 09:07:15

herosungod 发表于 2016-2-24 09:50
找过了,等级不够喔!能否传一份给我?万分感谢!

你给我一个邮箱地址吧,我发给你或者给一个云盘地址给我。
页: 1 [2] 3
查看完整版本: 求大神赐教CSR芯片ADK代码message定义中两个结构体定义理解???