很多初学者常要求使用_at_,这其实是把 C 语言当作汇编语言(ASM)看待的一种谬误。在 C 语言里,变量的定位是编译器的工作。初学者只需定义变量及其作用域,编译器就会为变量分配一个固定地址。若要获取变量的地址,需使用指针。例如,定义unsigned char data x;后,x的地址就是&x,通过查看这个参数,就能在程序中知晓具体地址。所以,一旦看到有人要使用定位,印象大概率就是初学者。
误区二:设置 SP 的问题
这与个误区的原因类似。编译器在为所有变量和缓冲区分配地址后,会自动将一个字节开始的地方作为栈指针(SP)的起始位置,因此初学者无需操心此事。这正体现了 C 语言的优越性,许多工作在编译时就已完成。
在 C 语言中,常用项目来管理程序。项目一般分为 C 文件块和头部文件块两大部分。通常会把不同功能写在不同的 C 文件中,依据项目管理规则,将所有文件连接起来,就能得到可烧录的 HEX 文件或 BIN 文件。这些 C 文件中,有且仅有一个包含main()函数,就像上述示例中的 C 文件。通过头部文件将各个不同的 C 文件连接起来。一个 C 文件基本上要对应一个 H 头部文件,该 H 文件包含本 C 文件中可供外部使用的变量和函数,未在 H 文件中列出的则是 C 文件的内部函数和变量,外部 C 文件无法使用。