標籤:include return import 單詞 命名
//#import 與 #include 相比能夠防止重複匯入,保證內容值只複製一個.
//#include "A.h"
//#include "A.h"
//多個include 修改如下:
#ifndef lessonPointHigher_A_h
#define lessonPointHigher_A_h
int max(int x ,int y)
{
return x > y ? x :y;
}
#endif
//宏 ,只做替換 //#開頭 指令
//命名規則: 1. 全大寫 2. k + 駝峰(多個單片語成,每個單詞的首字母大寫.)
//例如 MAX 或者 kMax
//宏 不是變數
//#define 用來定義宏 COUNT 宏名
//無參宏
#define COUNT 10 //後面不要加分號
//在先行編譯階段 COUNT 全部換成 10
//使用宏 應注意的問題:
//1.定義宏時,最後不能加分號.分號也會成替換內容的一部分
//2.參數要加括弧
//3.對於有參數宏,宏名與括弧之間不能加空格
//有參宏
#define SUM(A,B) ((A) + (B))
//如果先算宏內的運算 定義宏時,加括弧 #define SUM(A,B) ((A) + (B))
//宏不限制資料類型
//宏 只是替換功能
//SUM(5,10) * SUM(5, 10) 等於 65
#define AAAA
int main(int argc, const char * argv[])
{
//條件編譯 根據條件來編譯不同的代碼 ,編譯期會將源檔案編譯成二進位指令,存放在代碼區.條件編譯經常用來偵錯工具.
//條件編譯 第一種形式
//#ifdef 標識符 程式碼片段1 #else 程式碼片段2 #endif
//如果標識符通過#define 定義過,則編譯程式碼片段1 , 否則編譯程式碼片段2 . #endif 是編譯的結束標誌.
#ifdef AAAA
int a =10 ;
#else
int a= 20;
#endif
printf("a = %d\n", a);
//條件編譯 第二種形式
//#ifndef 標識符 程式碼片段1 #else 程式碼片段2 #endif
//如果標識符沒有通過#define 定義過,則編譯程式碼片段1 , 否則編譯程式碼片段2 . #endif 是編譯的結束標誌.
#ifndef AAAA
int b =10 ;
#else
int b= 20;
#endif
printf("b = %d\n", b);
//條件編譯 第二種形式
//#if 常量運算式 程式碼片段1 #else 程式碼片段2 #endif
//如果 常量運算式 結果非 0 編譯器編譯程式碼片段1 否則編譯程式碼片段2
#if 1
int c = 10;
#else
int c= 20 ;
#endif
//結構體指標訪問結構體成員,通過指向操作符, 例如:結構體指標變數->結構體成員;
// printf("%s \n" ,pStu->name);
// strcpy(pStu->name, "xiaoguang");
// printf("%s \n" ,pStu->name);
// // pStu ++ ; //增加的是整個結構體的大小.
// // *pStu 和 xiaoguang 的功能是一樣的.都是擷取到結構體的內容.