以上c**c編譯器編譯可通過,c++編譯器無法編譯通過
1、c中定義結構體變數需要加上struct關鍵字,c++不需要
2、c中的結構體只能定義成員變數,不能定義成員函式。c++即可以定義成員變數,也可以定義成員函式
c語言:
struct stu
*/};
void test01()
;}
c++:
struct stu
};void test01();
//呼叫結構體中的成員方法(成員函式)
lucy.func();
}
c++新增bool型別
void test02()
2、c++語言三目運算表示式返回值為變數本身(引用),為左值,可以賦值
void test02()
能被賦值的就是左值 不能被賦值的就是右值
1、c語言中
const int a = 10;//不要把a看成常量
//a的本質 是變數 只是 唯讀變數
a、c語言的const修飾全域性變數預設是(外部鏈結的)fun.c
//c語言的const修飾全域性變數 預設是(外部鏈結的)
const int num = 100;//唯讀的全域性變數 記憶體放在文字常量區(記憶體空間唯讀)
main.c
//對fun.c中的num進行宣告(不要賦值)
extern const int num;
void test03()
總結:在c語言中1、const修飾全域性變數num 變數名唯讀 記憶體空間在文字常量區(唯讀)、不能通過num的位址 修改空間內容
2、const修飾區域性變數data 變數名唯讀 記憶體空間棧區(可讀可寫),可以通過data位址 間接的修改空間內容
2、c++中的const 深入理解
fun.cpp
//const修飾的全域性變數 預設是內部鏈結(只在當前原始檔有效 不能直接用於其他原始檔)
//const int num = 100;
//如果必須用在其他原始檔 使用唯讀的全域性變數 必須加extern將num轉換成外部鏈結
extern const int num = 100;
main.cpp
//宣告
extern const int num;
struct person
;void test04()
void test06()
void test07()
; //需求:給arr起個別名
int (&my_arr)[5] = arr;//my_arr就是陣列arr的別名
int i=0;
for(i=0;i<5;i++)
; //1、用typedef 給陣列型別 取個別名
//type_arr就是乙個陣列型別(有5個元素 每個元素位int)
typedef int type_arr[5];
//myarr就是陣列arr的別名
type_arr &myarr=arr;
int i=0;
for(i=0;i<5;i++)
void my_swap2(int *a,int *b)//a=&data1,b =data2;
void my_swap3(int &a, int &b)//a=data1,b=data2
void test04()
int& my_data1(void)
void test05()
void my_str2(char* &my_str)//char* &my_str = str;my_str等價str
void test07()
stu;
void myprintstu1(stu tmp)//普通結構體變數作為形參 開銷太大
51微控制器 外部中斷
int0是外部中斷0 0 int1是外部中斷1 2 t0和t1是定時器中斷 1,3 rx和tx是串列埠中斷 it0和it1確定工作方式 暫存器tcon中配置 ie0和ie1是中斷標誌位,為1的時候,向cpu傳送請求中斷 tf0和tf1是溢位中斷請求位 定時器溢位便置1,傳送請求中斷 ri和ti是序列...
C51微控制器 外部中斷
cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 如圖 引起cpu中斷的根源,稱為中斷源。中斷源向cpu提出的中斷...
微控制器引腳預設電平 微控制器的內部 外部結構
拿到一塊晶元,想要使用它,首先必須要知道怎樣連線,我們用的一塊稱之為89c51的晶元,下面我們就看一下如何給它連線。1 電源 這當然是必不可少的了。微控制器使用的是5v電源,其中正極接40引腳,負極 地 接20引腳。2 振蒎電路 微控制器是一種時序電路,必須提供脈衝訊號才能正常工作,在微控制器內部已...