|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- }7 X0 ~# W0 a* C* [* e) l' D
* Q! A2 `% }* q( `& A8 x. C 常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。
5 R# N- Z% D1 a' i( ?+ X
$ U7 t3 E+ x, B3 i8 {% b/ h 1) C忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned char data x;后,x的地址就是&x, 你只要查看这个参数,就可以在程序中知道具体的地址了。所以俺一看见要使用绝对定位的人,第一印象就是:这大概是个初学者。
* M3 t3 J8 X# B! E# ~& Q* r& ^ 2) 设置SP的问题。 原因和1差不对,编译器在把所有变量和缓冲区赋予地址后,自动把最后一个字节开始的地方,作为SP的开始位置,所以初学者是不必 要去理会的。这体现C的优越性,很多事情C编译时候做了。3 K% S7 {$ z7 w5 I9 i0 m
3) 用C的主程序结构: #include void main(void) { while(1); } 这是个最小的成功的C程序,包括头部文件和程序主体。 头部文件的名词解释:引用的外部资源文件,这个文件包括了硬件信息和外部模块提供的可使用的函数和变量的说明。可以用文本方 式打开reg52.h,仔细研究下,会有一些写程序的体会。
3 Y. e' K6 G1 v3 Q |
|