亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 預處理階段工作:①將頭文件展開直接放置到源文件中

    ? ? ? ? ? ? ? ? ? ? ? ? ? ?②宏替換

    ? ? ? ? ? ? ? ? ? ? ? ? ? ?③條件編譯

    注意:宏替換只是簡單得字符串替換,且可以傳遞參數。

    例如,#define N(n) n*10

    ? ? ? ? ? ?int b = N(a);? // 首先n替換成a,然后a*10。


    易錯:#define ADD(a,b) a+b

    ? ? ? ? ? int c = ADD(a,b) * ADD(a,b);??

    /* 經過簡單的替換會得到a+b*a+b,這顯示不是我們想要的結果,因此加上括號保證優先級不會出錯。*/

    ? ? ? ? ? ? #define ADD(a,b) (a+b)?

    查看全部
  • 生成一個.i文件,-E表示只讓gcc舉行預處理

    預處理展開了頭文件,形成了main函數上面的一大串文字

    查看全部
  • http://img1.sycdn.imooc.com//6051686e0001b7be04660118.jpg結構體 數組 指針運用

    查看全部
    0 采集 收起 來源:結構體指針

    2021-03-17

  • (* w). 指針變量引用成員,可用 -> 代替

    查看全部
    0 采集 收起 來源:結構體指針

    2021-03-17

  • 結構體 引用:? .? ? 成員預算符,優先級最高

    查看全部
  • .c--.i? ?預處理

    .i--.s? ?編譯

    .s--.o? ?匯編

    .o--可執行文件? ? 鏈接

    查看全部
  • 宏:反復使用的常量,數組buffer大小;為了便于修改,定義成宏

    查看全部
  • .c文件—>.i文件—>.s文件—>.o文件—>可執行文件

    ? ? ? 預處理? ? ? ?編譯? ? ? ? 匯編? ? ? ? ? 鏈接

    查看全部
  • define ? ? 宏的聲明不需要會分號?

    查看全部
  • malloc分配內存塊的函數;且需添加頭文件#include <malloc.h>;

    sizeof判斷數據類型的長度符;

    malloc返回的是開辟空間的首地址,他并不知道你放的是什么類型的東西,所以要用第一個括號中的內容強制轉換指針類型為struct weapon*,和p1的類型轉為一樣,否則會警告指針類型不符合;


    查看全部
  • union讓不同類型的變量共用同一個內存單元,能節省內存空間,但只能存儲一個成員;

    聲明方法:

    union [name]{

    ????...

    };

    使用:union [union_name] [value_name];

    共用體聲明時只能有一個常量。給共用體成員賦值時后賦值的變量值會覆蓋前一個

    共用體所占的內存地址是其成員中內存地址最大的成員的內存地址。

    結構體對象大小=最后一個成員的大小+最后一個成員的偏移量+填充字節數

    偏移量:結構體中一個成員相對于結構體的首字節(即第一個成員的首字節)所距離的大小。(那么第一個成員相對于結構體的偏移量為0)

    每個成員所占內存大小的偏移量=成員字節大小的整數倍。(若不是,則編譯器會在前一個成員后做字節填充,使這個成員的偏移量=字節大小的整數倍。計算結構體內存地址大小時若總大小不等于最大成員字節大小的整數倍,會在最后一個成員后做字節填充。)

    打印結構體的字節數:

    printf("%lu",sizeof(...));

    共用體元素地址都相同,可用:printf("%p\n",&data_1.a);


    查看全部
    0 采集 收起 來源:Linux C公用體

    2020-12-14

  • 如何對結構體進行初始化和訪問結構體成員:

    1、初始化 在花括號內 對結構體內變量成員依次賦值即可

    struct weapon weapon_1 = {"w_name",100,200};

    2、訪問結構體成員:使用運算符.

    :weapon_1.name,weapon_1.price//根據初始化的內容,=200

    3、結構體數組,數組元素是結構體 struct weapon weapon_2[2]={"weapon_name1",50,100,"weapon_name2",100,200}; 或struct weapon weapon_2[2]={{"weapon_name1",50,100},{"weapon_name2",100,200}};



    查看全部
  • 結構體struct 是不同類型變量的集合,struct+結構體類型名稱+{類型+變量1;類型+變量2......};

    三種寫法:1、struct +結構體類型名稱+{類型+變量1;類型+變量2......};再在主函數中引用 struct +結構體類型名稱+結構體名稱;eg:struct weapon{char name[20];int atk ;}; struct weapon weapon_1;

    2、直接在聲明時定義,eg:struct weapon{char name[20];int atk ;} weapon_1;//大型程序中不便于維護

    3、不指定結構體類型名稱,但只能定義一種結構體。

    查看全部
  • typedef 在預處理后不作替換處理,且語句后需加分號;作用域為當前大括號中,而宏定義則為全局通用;typedef一般用于結構體,eg:typedef struct stu{? } stu_t ;

    查看全部
  • 宏定義命令符 define 例:#define R 10

    編譯器預處理時將宏定義視為字符串并進行替換,

    查看全部

舉報

0/150
提交
取消
課程須知
本課程為C語言的中級課程 1、需要有一定的C語言基礎,如有基礎薄弱的童鞋可以看一下網站上其他3門C語言的課程 2、因在Linux環境下,需會一些Linux下的命令,可以看一下《Linux C語言編程原理與實踐》此課。
老師告訴你能學到什么?
1、預處理是干什么的 2、結構體是什么 3、公用體是什么 4、位運算是怎么回事 5、如何實現動態數據結構體 6、遞歸的原理

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!