本部分就實(shí)際工作工程中C語言工程師,即使是資深工程師也經(jīng)常犯錯的問題進(jìn)行討論,介紹C語言的易錯陷阱和C++的改進(jìn)方案,以幫助工程師更好的理解C++的設(shè)計(jì)和解決方案,為成為資深的高級工程師和架構(gòu)師打下扎實(shí)的基礎(chǔ)。
本章會帶領(lǐng)大家回顧C(jī)語言必要的基礎(chǔ)知識,重點(diǎn)講解C語言中的指針等難點(diǎn)內(nèi)容,幫助大家為后續(xù)學(xué)習(xí)開發(fā)做好準(zhǔn)備。
本章帶大家回顧FFmpeg開發(fā)必備C語言基礎(chǔ),包括C語言中的常量與變量,C語言結(jié)構(gòu)體,C語言中的判斷語句, C語言中的循環(huán)語句,C語言再論指針,C語言中的函數(shù) ,C語言對文件的操作,編譯的基本原理,調(diào)試器等。
雖然C++11棄用了異常標(biāo)準(zhǔn),但是,在實(shí)際開發(fā)中,程序必須考慮異常的情況。學(xué)習(xí)異常和斷言,有助于寫出更穩(wěn)定的程序。
數(shù)據(jù)是信息的載體,在計(jì)算機(jī)的世界里,一切都是數(shù)據(jù)。數(shù)據(jù)需要運(yùn)算,加減乘除、比較大小、條件是否成立等,和我們生活中的運(yùn)算是一樣的。
了解C++的歷史概況,C++語言的特點(diǎn)及C++語言作用,認(rèn)識哪些場合下C++是無可替代的;
萬丈高樓首先要打地基、搭框架,如果沒有牢固的基礎(chǔ),后面就很難砌墻、安裝門窗。學(xué)習(xí)計(jì)算機(jī)語言也應(yīng)該從程序的基本結(jié)構(gòu)學(xué)起,只有這樣,才能一步一步的了解具體細(xì)節(jié).
數(shù)據(jù)存放在內(nèi)存中,數(shù)據(jù)類型作用是告訴計(jì)算機(jī)如何處理數(shù)據(jù)。如果數(shù)據(jù)類型是整數(shù),那么它可以進(jìn)行加減乘除運(yùn)算,如果是字符串,那它只能顯示。C++的數(shù)據(jù)類型只有三種:整數(shù)、小數(shù)和字符串,這三種數(shù)據(jù)類型可以表示萬物。
今天我們繼續(xù)深入學(xué)習(xí)C++指針,同學(xué)們繼續(xù)加油:)
C++11標(biāo)準(zhǔn)是C++發(fā)展史上的里程碑,豐富了C++的功能,提性了C++的性能。目前,C++11已經(jīng)普及,在實(shí)際開發(fā)中得到了廣泛的應(yīng)用,企業(yè)面試的時候必考C++11標(biāo)準(zhǔn)。
介紹一下公司對于C++候選人用人標(biāo)準(zhǔn)的變化,以及不同公司面試的不同偏向。
結(jié)合c語言編譯后的匯編語言深入講解c語言本質(zhì)
- 6-1 C語言函數(shù)
- 6-2 匯編和C語言結(jié)構(gòu)
- 6-3 常見x86匯編指令介紹
- 6-4 x86指令的格式
- 6-5 C語言函數(shù)外
- 6-6 C語言函數(shù)
- 6-7 C語言語句
- 6-8 C語言運(yùn)算符
- 6-9 C語言printf函數(shù)
- 6-10 預(yù)處理宏定義
- 6-11 整數(shù)詳解
- 6-12 整數(shù)加減乘除
- 6-13 類型轉(zhuǎn)換規(guī)則
- 6-14 浮點(diǎn)數(shù)
- 6-15 浮點(diǎn)fpu指令
- 6-16 浮點(diǎn)sse指令
- 6-17 指針數(shù)組字符串
- 6-18 結(jié)構(gòu)體聯(lián)合體枚舉
- 6-19 csapp的data-bomb-attack實(shí)驗(yàn)
- 6-20 鏈接詳解
在過去的幾年里,隨著微軟.net平臺的開源、以及unity游戲平臺的興起,c#程序開發(fā)產(chǎn)生了爆炸式的發(fā)展?,F(xiàn)在,c#開發(fā)相關(guān)的生態(tài)已經(jīng)非常完善了,而c#本身也一躍成為市場上最具有競爭力的編程語言之一。課程的第一章,我們簡單了解一下課程大綱,初步認(rèn)識C#和.Net平臺,準(zhǔn)備好我們的開發(fā)環(huán)境。
本章主要講解演示編譯環(huán)境搭建,IDE配置,調(diào)試方法,代碼規(guī)范風(fēng)格等內(nèi)容,為課程后續(xù)內(nèi)容做足準(zhǔn)備工作。
本章重點(diǎn)介紹Linux平臺使用C++語言編程的基礎(chǔ)知識、平臺搭建、編寫程序、調(diào)試及在復(fù)雜工程中Makefile的使用等。
- 11-1 -1 Linux C++環(huán)境搭建、編程和調(diào)試基礎(chǔ)上
- 11-2 -2 Linux C++環(huán)境搭建、編程和調(diào)試基礎(chǔ)下
- 11-3 LinuxCPP之什么是Makefile
- 11-4 LinuxCPP之Makefile產(chǎn)生的背景
- 11-5 LinuxCPP之Makefile之make和Makefile的調(diào)用
- 11-6 LinuxCPP之Makefile的格式
- 11-7 LinuxCPP之Makefile的擴(kuò)展用法
- 11-8 LinuxCPP之Makefile編寫中的變量1
- 11-9 LinuxCPP之Makefile編寫中的變量2
- 11-10 LinuxCPP之Makefile編寫中的變量3
- 11-11 LinuxCPP之Makefile的自動生成和部署--CMake的使用
- 11-12 VisualStudio開發(fā)LinuxCPP的基本使用
今天我們繼續(xù)學(xué)習(xí)C++數(shù)據(jù)類型,加油:)
通過剖析C++常見經(jīng)典著作和對一些大牛的經(jīng)驗(yàn)解讀,排除大家學(xué)習(xí)C++的坑,為大家將來成為C++技術(shù)大牛鋪設(shè)一條基本路線;
不要在錯誤的學(xué)習(xí)方法上內(nèi)耗,幫助你管理好精力,明確學(xué)習(xí)努力的方向。
C++從0實(shí)現(xiàn)百萬并發(fā)的Reactor服務(wù)器-課程概覽
本章和大家介紹程序員小慕,以及小慕工作中的痛點(diǎn),引導(dǎo)大家如何正確的學(xué)習(xí)設(shè)計(jì)模式。
深入再談Class;深入再談面向?qū)ο竽J剑?3種設(shè)計(jì)模式的思路和最常用的單例,觀察者模式等在工程中的實(shí)際使用;分析C++模版編程范式;
- 9-1 C++中資源管理的方式很多:堆,棧,常量區(qū),RAII等,該如
- 9-2 單例模式。
- 9-3 static和單例模式的實(shí)現(xiàn)
- 9-4 觀察者模式
- 9-5 list的使用和觀察者模式的實(shí)現(xiàn)1
- 9-6 觀察者模式的實(shí)現(xiàn)2
- 9-7 void星NULL和nullptr
- 9-8 const_cast的使用
- 9-9 reinterpret_cast的使用
- 9-10 static_cast和dynamic_cast的使用
- 9-11 Adapter模式和多重繼承
- 9-12 Adapter組合方式實(shí)現(xiàn)
- 9-13 設(shè)計(jì)模式總結(jié)
- 9-14 泛型編程之泛型函數(shù)1
- 9-15 泛型編程之泛型函數(shù)2
- 9-16 泛型編程的遞推過程及總結(jié)
- 9-17 C++中資源管理的方式很多:堆,棧,常量區(qū),RAII等,該如
深入講解基本語句:賦值語句,判斷語言,循環(huán)語言for, while;深入講解基本數(shù)據(jù)與結(jié)構(gòu),枚舉,結(jié)構(gòu)體和聯(lián)合體;深入講解函數(shù),遞歸函數(shù)的來龍去脈;淺析類與面向?qū)ο蟮母拍?;談?wù)劽臻g的使用。
- 7-1 C++語言到底需不需要GC(Gabage Collector
- 7-2 if語句基礎(chǔ)
- 7-3 if語句的例子
- 7-4 switch分支基礎(chǔ)
- 7-5 switch和if的對比
- 7-6 自定義類型--枚舉
- 7-7 自定義類型--結(jié)構(gòu)體與聯(lián)合體
- 7-8 結(jié)構(gòu)體的內(nèi)存布局
- 7-9 三種循環(huán)的基本使用與比較
- 7-10 for循環(huán)的一個優(yōu)化實(shí)例
- 7-11 函數(shù)基礎(chǔ)
- 7-12 函數(shù)重載overload與Name Mangling
- 7-13 指向函數(shù)的指針與返回指針的函數(shù)
- 7-14 命名空間。
- 7-15 函數(shù)體的Hack過程
- 7-16 內(nèi)聯(lián)函數(shù)。
- 7-17 數(shù)學(xué)歸納法與遞歸
- 7-18 遞歸的特點(diǎn)和Hack過程
- 7-19 尾遞歸的優(yōu)化
- 7-20 遞歸的動態(tài)規(guī)劃思路
- 7-21 C++語言到底需不需要GC(Gabage Collector
為了便于大家更好的學(xué)習(xí)流媒體服務(wù)器的開發(fā),本章將帶大家對WebRTC服務(wù)器開發(fā)中用到的C++基礎(chǔ)知識進(jìn)行回顧梳理,如類的定義與使用,繼承,多態(tài),名存空間等相關(guān)知識。
深入剖析C++類型轉(zhuǎn)換:顯式轉(zhuǎn)換的四種常見的方式,隱式轉(zhuǎn)換類型轉(zhuǎn)換的影響; 用通俗易懂的方式深入淺出講解異常,IO,文件,線程,模版編程,這些很難難用的部分;
- 8-1 C++編程中需要使用面向?qū)ο蟮脑O(shè)計(jì)模式嗎?
- 8-2 面向?qū)ο蟮某橄蠓▌t1-具體類型的抽象
- 8-3 對象的屬性
- 8-4 運(yùn)算符重載
- 8-5 拷貝構(gòu)造及臨時對象的優(yōu)化
- 8-6 前置與后置操作符
- 8-7 標(biāo)準(zhǔn)輸入輸出IO重載
- 8-8 IO流基礎(chǔ)
- 8-9 IO緩存區(qū)
- 8-10 文件操作基礎(chǔ)
- 8-11 文本文件的操作
- 8-12 二進(jìn)制文件的操作
- 8-13 Complex其他運(yùn)算符重載
- 8-14 頭文件重復(fù)包含問題
- 8-15 關(guān)于前七章的練習(xí)題及答案
- 8-16 深拷貝淺拷貝及move語義的優(yōu)化
- 8-17 面向?qū)ο蟮某橄蠓▌t2
- 8-18 Hack對象模型和虛函數(shù)
- 8-19 面向?qū)ο笕筇匦约翱偨Y(jié)
- 8-20 C++編程中需要使用面向?qū)ο蟮脑O(shè)計(jì)模式嗎?
指針是C++重點(diǎn):深入講解指針的概念,各種類型的指針,const指針,數(shù)組指針與指針數(shù)組;指針的指針,指向函數(shù)的指針;更高級的內(nèi)容:如何避免野指針,各種指針的使用場景,及實(shí)際工程中必須避免的用法和相對好的做法;講解引用與指針的關(guān)系: 會使用引用,知道實(shí)際工程中比較好的一些做法;
- 6-1 C++編程中我們是不是應(yīng)該盡量避免使用指針?
- 6-2 左值與右值
- 6-3 一般指針,數(shù)組指針和指針數(shù)組
- 6-4 const與指針
- 6-5 指向指針的指針
- 6-6 關(guān)于野指針
- 6-7 指針的基本操作一
- 6-8 指針的基本操作二
- 6-9 指針的基本操作三
- 6-10 CPP程序的存儲區(qū)域劃分
- 6-11 CPP程序的存儲區(qū)域劃分總結(jié)
- 6-12 CPP動態(tài)分配和回收原則
- 6-13 RAII初步
- 6-14 幾種變量的對比
- 6-15 內(nèi)存泄漏
- 6-16 智能指針auto_ptr
- 6-17 智能指針unique_ptr
- 6-18 shared_ptr和weak_ptr理論講解
- 6-19 shared_ptr和weak_ptr代碼演示
- 6-20 引用
- 6-21 C++編程中我們是不是應(yīng)該盡量避免使用指針?
本章主要講解OC語言特性相關(guān)的面試題,如分類、擴(kuò)展、代理、通知、KVC、KVO(底層實(shí)現(xiàn)是高級考點(diǎn))、關(guān)聯(lián)對象等。對于每一知識點(diǎn)都會深度講解其技術(shù)原理、實(shí)現(xiàn)機(jī)制,其中也會涉及一部分系統(tǒng)源碼解讀;讓同學(xué)們在學(xué)完后能知其然,知其所以然,應(yīng)對面試自然是小菜一碟。
調(diào)試和查看程序的匯編實(shí)現(xiàn)是C++程序員的基本功,也為優(yōu)化程序性能做好了準(zhǔn)備。本章初步介紹了函數(shù)的匯編表現(xiàn)形勢,并以一個shellcode的實(shí)現(xiàn)為例講述了程序的安全漏洞問題和解決方案。
C++八股文面試,如果知識死記硬背,每個知識點(diǎn)深入的問下去,很快就會“露餡”,該章節(jié)從語法學(xué)背后的語義學(xué)角度去深入講解,從CPU視角去了解編譯器的工作原理,從而達(dá)到掌握的目的
- 2-1 extern C的含義
- 2-2 數(shù)組定義和作為函數(shù)參數(shù)的區(qū)別
- 2-3 Dll導(dǎo)類,調(diào)用者未變化,實(shí)現(xiàn)者增加了成員會如何
- 2-4 類內(nèi)static函數(shù)和一般成員函數(shù)有何區(qū)別
- 2-5 詳細(xì)地談const
- 2-6 malloc和new的區(qū)別
- 2-7 operatorNew和newOperator
- 2-8 delete和delete[]的區(qū)別
- 2-9 extern C的含義
- 2-10 什么是函數(shù)重載
- 2-11 struct和class的區(qū)別
- 2-12 結(jié)構(gòu)體成員對齊問題
- 2-13 談一下volatile變量
- 2-14 stdcall函數(shù)的參數(shù)是否可變
- 2-15 構(gòu)造函數(shù)的初始化順序
- 2-16 指針和引用的區(qū)別
- 2-17 手寫一個類內(nèi)含構(gòu)造拷貝構(gòu)造賦值析構(gòu)函數(shù)
- 2-18 如何實(shí)現(xiàn)多態(tài)
- 2-19 虛表指針是何時賦值的
- 2-20 虛函數(shù)表存放在什么位置
- 2-21 cast系列指針轉(zhuǎn)換的區(qū)別
- 2-22 談一下rtti
- 2-23 兩個父類都有虛函數(shù),子類至少有多大
- 2-24 析構(gòu)函數(shù)加不加virtual有何區(qū)別
- 2-25 如何創(chuàng)建線程私有數(shù)據(jù)
- 2-26 談一下lambda表達(dá)式
- 2-27 談一下右值引用與完美轉(zhuǎn)發(fā)
- 2-28 override和final的作用
- 2-29 三個ptr智能指針的區(qū)別
- 2-30 手寫shared_ptr
- 2-31 語言篇-課程小結(jié)
雖然C++11棄用了異常標(biāo)準(zhǔn),但是,在實(shí)際開發(fā)中,程序必須考慮異常的情況。學(xué)習(xí)異常和斷言,有助于寫出更穩(wěn)定的程序。