原创 C語言:關鍵字

1、static(保存在全局數據區) 1)、延長局部變量生命週期:static 只執行一次。 2)、修飾全局變量,只能在本文件中使用,其他文件不能訪問。 3)、修飾函數:一個函數被static修飾,只能在本文件中調用,不能在其他文件中使用

原创 關於字符串長度、字符串逆序的相關程序

#include < stdio.h> 求字符串的長度: int main() {     char str[100] = "hello world!";     int len = 0;     int i;     for (i =

原创 數組與指針

一、指針 1、對應的內存的空間:     num ++; 2、指針的步長:     整形:4個   字符1個; 3、(*P)++:找到p變量裏保存的地址對應的內存空間: 4、指向內存空間: p++:對p對應的內存空間的值+1; (*p)

原创 C語言中函數strlen等的實現

#include <stdio.h>//#include <string.h>#define MAX_SIZE 1024/*把值定義在外面容易修改*/int my_strlen(char *str){    int len = 0; 

原创 linux 課堂作業

linux下文件拷貝代碼 #include <stdio.h> #include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#in

原创 uC/OS - 2操作系統的簡單概念

uC/OS - 2操作系統的簡單概念 實時系統:指邏輯和時序出現偏差將會引起嚴重後果的系統。 前臺程序:一般指死循環中的程序。後臺程序:中斷程序。 臨界代碼段:代碼的臨界段也稱爲臨界區,指處理時補課分割的代碼。 任務切換:1.保存任務1的

原创 動態庫 靜態庫

一、動態庫: gcc -shared - fPIC -o libadd.so add.c sub.c mul.c  div.c gcc main.c 二、靜態庫: gcc -c add.c sub.c mul.c div.c ar rcs

原创 鏈表

單鏈表的插入: 假設存儲元素e的結點爲s,要實現p、p->next和s直間邏輯關係的變化,只需要將s插入到p和p->next之間即可。也就是說,讓p的後繼結點稱爲s的後繼結點,s變成p的後繼結點,如下圖: 這個操作的代碼只需要兩

原创 課堂筆記

一、什麼是聲明?什麼是定義?它們有什麼區別? 什麼是定義:所謂的定義就是(編譯器)創建一個對象,爲這個對象分配一塊內存並給它取上名字,這個名字就是我們經常所說的變量名或對象名。但是注意,這個名字一旦和這塊內存匹配起來(可以想象是這個名

原创 typedef與#define

typedef常用來定義一個標識符及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配內存空間 #define爲一宏定義語句,通常用它來定義常量(包括無參量與帶參量),以及用來實現那些“表面似和善、背後一長串”的宏,它本身並不在

原创 scanf,gets,getchar,fgets中的一些細節

1.getchar   int getchar ( void );   Get character from stdin   Returns the next character from the standard inp

原创 malloc,realloc,calloc的介紹與區別

一.首先我們先大體介紹下 malloc ralloc calloc 1.malloc           void* malloc(size_t size ); 分配size個字節的未初始化的存儲空間。 如果分配成功則返回指

原创 嵌入式課堂筆記

1、通過函數名找到函數的入口地址。 2、給形參分配空間。 3、傳值:把實參變量對應的內存空間的值,傳遞給形參變量的對應空間。 {當只讀(只使用不修改)實參變量的值時,傳實參變量變量名 當寫(即使用又修改)實參變量對應內存空間的地址} 4、

原创 typedef與define的區別

Typedef和define都可以用來給對象取一個別名,但是兩者卻有着很大不同。 1. 首先,二者執行時間不同 關鍵字typedef在編譯階段有效,由於是在編譯階段,因此typedef有類型檢查的功能。 Define則是宏定義,發

原创 嵌入式調試器GDB簡單功能介紹

GNU開發了GDB調試器,雖然GDB沒有圖形調試界面,但對於從事嵌入式Linux應用開發的人員還是有必要知道GDB的使用方法的。 一般來說,GDB主要幫助你完成下面四個方面的功能: 1、啓動你的程序,可以按照你的自定義的要求隨心所欲的