很多初學(xué)者常要求使用_at_,這其實是把 C 語言當(dāng)作匯編語言(ASM)看待的一種謬誤。在 C 語言里,變量的定位是編譯器的工作。初學(xué)者只需定義變量及其作用域,編譯器就會為變量分配一個固定地址。若要獲取變量的地址,需使用指針。例如,定義unsigned char data x;后,x的地址就是&x,通過查看這個參數(shù),就能在程序中知曉具體地址。所以,一旦看到有人要使用定位,印象大概率就是初學(xué)者。
誤區(qū)二:設(shè)置 SP 的問題
這與個誤區(qū)的原因類似。編譯器在為所有變量和緩沖區(qū)分配地址后,會自動將一個字節(jié)開始的地方作為棧指針(SP)的起始位置,因此初學(xué)者無需操心此事。這正體現(xiàn)了 C 語言的優(yōu)越性,許多工作在編譯時就已完成。
在 C 語言中,常用項目來管理程序。項目一般分為 C 文件塊和頭部文件塊兩大部分。通常會把不同功能寫在不同的 C 文件中,依據(jù)項目管理規(guī)則,將所有文件連接起來,就能得到可燒錄的 HEX 文件或 BIN 文件。這些 C 文件中,有且僅有一個包含main()函數(shù),就像上述示例中的 C 文件。通過頭部文件將各個不同的 C 文件連接起來。一個 C 文件基本上要對應(yīng)一個 H 頭部文件,該 H 文件包含本 C 文件中可供外部使用的變量和函數(shù),未在 H 文件中列出的則是 C 文件的內(nèi)部函數(shù)和變量,外部 C 文件無法使用。