一、陣列清空
# include # include int main(void)
; for (j=0; j<10; ++j)
printf("\n");
memset(str, 0, sizeof(str)); //陣列清空
for (i=0; i<500; ++i)
}
二、char型別轉換int型別
#include //需要標頭檔案stdlib.h
#include int main()
; int x=0;
x= atoi(a); //char型別123轉換int型別123
printf("%d",x); //此時x為123
}
三、把陣列元素裡面的值賦值給另一陣列
#include #include void main()
;
strcpy(a,b); //strcpy中前乙個陣列的長度要大於或等於後面陣列的長度
printf("%s\n",a); //此時列印a的值就是abcde
}
四、字串擷取
#include #include int main()
; char src = ;
strncpy(dest, src+5, 5); //從第五個位元組開始的五個位元組長度
printf ("%s",dest); //輸出67890
}
五、51系列微控制器中data idata xdata pdata的區別和 bit sbit區別
data:固定指前面0x00-0x7f的128個ram,可以用acc直接讀寫的,速度最快,生成的**也最小。
idata:固定指前面0x00-0xff的256個ram,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似c中的指標方式 訪問的。彙編中的語句為:mox acc,@rx。
xdata:外部擴充套件ram,一般指外部0x0000-0xffff空間,用dptr訪問。
pdata:外部擴充套件ram的低256個位元組,位址出現在a0-a7的上時讀寫,用movx acc,@rx讀寫。這個比較特殊,而且c51好象有對此bug, 建議少用。但也有他的優點,具體用法屬於中級問題。
code :程式儲存區(64kb),
data :可直接定址的內部資料儲存區(128b)
idata:不可直接定址的內部資料儲存區(256b)
bdata:可位定址內部資料儲存區(16b)
xdata:外部資料儲存區(64kb)
pdata:分頁的外部資料儲存區
bit和int char之類的差不多,只不過char=8位, bit="1位而已"。
bit和sbit都是c51擴充套件的變數型別。
sfr(特殊功能暫存器)的bit。sfr是系統指定的記憶體位址。
bit 可以在外部或內部定義。
bit 動態分配的,有編譯器來指定記憶體位址。
bit 是編譯器在的可定址區分配的乙個位變數,是不定的,不是絕對位址目標。
sbit 只能在外部定義全域性變數。
sbit大部分是用在暫存器中的,方便對暫存器的某位進行操作的。
sbit位暫存器是可位定址的絕對位址目標,定義後編譯器是不會改變位置的。
sbit 要在最外面定義,就是說必須定義成外部變數.sbit定義的是sfr(特殊功能暫存器)的bit
sbit 更像是型別定義,不像是變數定義。
sbit是對應可位定址空間的乙個位,可位定址區:20h~2fh。
一旦用了sbi *** = rege^6這樣的定義,這個sbit量就確定位址了。
六、stm32f103c8t6暴力延時函式
void delay_ms(u32 ms)
void delay_us(u32 us)
C語言中的一些巨集定義和常用的函式
如果你是 c 程式設計師,應該接觸過 c 11 裡的decltype操作符,它的作用是自動推導表示式的資料型別,以解決泛型程式設計中有些型別由模板引數決定而難以 甚至不可能 表示的問題。其實這個特性在 c 語言中也早有類似的實現,gnu c 標準中的乙個擴充套件特性typeof 作用與 declty...
OC一些不常用的函式
int rand 隨機數生成。intabs int a 整數的絕對值,abs 10 結果為10 double fabs double a double型別的絕對值,fabs 3.14 結果為3.140000 double fabsf float a fabsf型別的絕對值,fabsf 3.14 結果...
C語言巨集定義的一些用法
do while 0 在巨集定義中合理使用do while 0 可以更規範地使用巨集定義 沒有使用do while 0 前 define led on int main void 多了個分號 使用do while 0 define led on dowhile 0 int main void whi...