楼主:
su27 (su27)
2014-08-08 13:59:51你的问题在于你没学过组合语言
你学过组合语言 在去看指标会超级容易
我宣告一连串的变量a~p(我懒的算是不是16个)
这些变量的存放位址从0x20~0x2F(你也能当这是阵列)
我要去将变量的值全加起来 你程式要sum+=a sum+=b .....
指标你把它想成它有两个暂存器一个放 你要写入你要读取的位址 另一个是那位址的值
如暂存器0x200 存放的值是20
你写x1=0x200 就是将你要读取的暂存器的位址写入
sum+=*x1 就是将储存在暂存器0x200的值读出来
这样我只要写几行程式就能达到我的要求
一行是将我要读的位址写入固定的暂存器 在去指定的暂存器读值
这样我的程式就会变小(当然n越大 省越多 只有1~2变量 直接给值是最省的)
其实你使用的阵列就是指标 在编译器我个人是认为他看到指标跟阵列
对它来讲是一样的
※ 引述《GooLoo (平凡)》之铭言:
: 之前有查过一些c语言的书, 了解指标...
: 但是看完文字描述, 还是不太会用, 也不是很了解它的精神
: 平常都写一些简单控制时序的程式,没有用到指标
: 今天看别人写的CODE,又看到指标.....
: 还是想问这问题, 就是我把*拿掉跟没拿掉,对整体动作有什么影响?
: 如果没影响, 好处又是什么呢?
: 如:
: void test(unsigned char *data,unsigned long len)
: {
: .....
: }
: 不晓得程式给这样够吗?还是要给些什么?
: 我看程式大部份都写得跟我平常写法差不多,只有这边多*