FFmpeg 工程之路-基礎(chǔ)開發(fā)概述

章節(jié)

  • 熟練使用 Vim 編輯器
    • Vim 編輯器核心理念、使用竅門
    • Vim 處理模式
    • Vim 常用命令
    • Vim 基礎(chǔ)命令
  • C語言基礎(chǔ)回顧
    • C語言基礎(chǔ)回顧-helloworld
    • 常用基本類型
  • C語言的常量與變量
    • 常量與變量
    • C語言內(nèi)存管理
  • C語言指針 與 數(shù)組
    • C語言指針
    • 數(shù)組
    • C 指針程序demo->testpoint.c
  • C 自定義類型
    • 結(jié)構(gòu)體
    • 枚舉類型
  • C語言文件操作
    • 文件操作流程
    • C語言操作文件實操->testfile.c
  • Linux/Mac C語言編譯器
    • 常用 gcc/clang 命令參數(shù)
  • 感想
    • 關(guān)于技術(shù)提升
    • 關(guān)于發(fā)展

1.熟練使用 Vim 編輯器

1.1 Vim 編輯器核心理念、使用竅門

核心理念: 雙手盡量與鍵盤接觸棚壁,這樣我們的思路才不會被打斷,集中精力寫代碼杯矩,思路不被打斷。
使用竅門: 勤學多練

1.2 Vim 處理模式

命令行模式

拷貝袖外、刪除史隆、粘貼等,通過 i/a 等鍵切換到編輯模式

編輯模式

編輯字符曼验,通過Esc鍵進行切換

1.3 Vim 常用命令

創(chuàng)建文件

vim filename

保存文件

:w

關(guān)閉文件

:q

切換vim模式為編輯模式

i

退出并保存

:wq

不保存

:q!

1.4 Vim 基礎(chǔ)命令

  • 拷貝/粘貼一行 yy/p
  • 刪除一行 dd
  • 拷貝/粘貼 一個詞 yw/p
  • 刪除一個次 dw
  • 光標移動-左下上右 h / j / k / l ,mac os 下直接按 上下左右
  • 跳到文件頭 gg
  • 跳到文件尾 G
  • 移動到行首 ^
  • 移動到行尾 $
  • 按單詞移動:向前 w/ 2w/ 泌射,向后 b/ 2b
    命令模式下編輯的內(nèi)容 存儲在緩沖區(qū)中,并沒有寫入到文件當中

2蚣驼、C語言基礎(chǔ)回顧

2.1 C語言基礎(chǔ)回顧-helloworld

編寫helloworld.c源代碼

//import 庫函數(shù)
#include <stdio.h>

//程序運行主入口 argc 輸入一些參數(shù)魄幕、字符數(shù)組每一項都是一個命令參數(shù),這個是行參
int main(int argc,char *argv[]){
   printf("hello world!\n");
   return 0;
}

注意:還給老師的c語言還是拿起來吧颖杏,重新站到鄙視鏈的頂端纯陨,嘿嘿。
編譯 helloworld.c

clang -g -o helloworld helloworld.c 
-g 代表編譯時輸出debug 信息留储、
-o 代表源代碼編譯完成之后輸出的文件翼抠、

運行 helloworld.c

BOFENGLIU-MB0:learn20181024 mark$ ./helloworld

運行結(jié)果

output

2.2 常用基本類型

  • short 占2個字節(jié)
  • int 占4個字節(jié)
  • long 占4個字節(jié)
  • float 占4個字節(jié)
  • double 占 4 個字節(jié)
  • char 占1個字節(jié)
  • void

擴充 helloworld.c 源代碼

//import 庫函數(shù)
#include <stdio.h>

//程序運行主入口 argc 輸入一些參數(shù)、字符數(shù)組每一項都是一個命令參數(shù)获讳,這個是行參
int main(int argc,char *argv[]){
   int a = 100;
   double b = 5.8;
   char c = 'Y';

   printf("a=%d,b=%f,c=%c\n",a,b,c);
   printf("hello world!\n");
   return 0;
}

運行結(jié)果

output 結(jié)果

3阴颖、C語言的常量與變量

3.1 常量與變量

int a = 0;//變量,可以再賦值
const int len = 256; //常量定義

3.2 c語言內(nèi)存管理

c語言內(nèi)存管理

4丐膝、c語言指針 與 數(shù)組

4.1 c語言指針

指針是c語言的靈魂量愧、所謂指針就是 內(nèi)存地址 void* 、char*
拿到指針就可以操作(獲取帅矗、更改)指針指向的內(nèi)存地址的value偎肃、
即 地址 就是 指針,void* 表示任意類型指針

c語言指針

實用比較多的是一級指針浑此。

4.2 數(shù)組

數(shù)組是內(nèi)存當中連續(xù)的同一類型數(shù)據(jù)的一塊空間累颂,char[2] 根據(jù)數(shù)組的序號找到目標索引數(shù)據(jù)。int arr[10] 根據(jù)數(shù)組的一個數(shù)據(jù)可以獲取到數(shù)組當前元素的前一個凛俱、后一個元素紊馏。

數(shù)組

4.3 c 指針程序demo->testpoint.c

#include<stdio.h>
#include<stdlib.h>

int main(int argc,char* argv[]){
   //1.聲明指針變量a,個人更傾向于使用 [類型*] 變量名蒲犬,而不擅長使用[類型] *變量名朱监,前者更加直觀,含義即 指向某類型變量的指針
   int* a;
   int* b;

   a = (int*)malloc(sizeof(int));//在堆內(nèi)存中分配int類型數(shù)據(jù)占內(nèi)存大小的空間原叮,并將內(nèi)存空間首地址賦給a
   b = (int*)malloc(sizeof(int));//同上

   *a = 1;
   *b = 2;

   printf("addr of a: %p,a saved addr: %p,a points value %d\n",&a,a,*a);//指針的指針赌朋,即存放指針的空間地址,指針變量存儲的地址值凰狞,指針指向的內(nèi)存區(qū)域存儲的vlaue
   printf("addr of b: %p,b saved addr: %p,b points value %d\n",&b,b,*b);//同上

   return 0;
}

運行結(jié)果

output結(jié)果

指向數(shù)組變量的指針

5.c 自定義類型

定義復雜類型去覆蓋原始類型不能實現(xiàn)的需求,即自定義類型

5.1 結(jié)構(gòu)體

struct  st {
    int a;
    int b;
}

在函數(shù)體里使用結(jié)構(gòu)體->teststruct.c

#include <stdio.h>
struct user {
   int sex;
   int age;
};

int main(int argc,char* argv[]) {
   struct user user;
   user.sex = 0;
   user.age = 10;

   printf("st user  content is :%d,%d\n",user.sex,user.age);
   return 0;
}

運行結(jié)果

運行結(jié)果

5.2 枚舉類型

enum color_em {
    red_color = 0,
    green_color, //自動 + 1 為 1
    yellow_color,//自動 + 1 為 2
    black_color, //自動 + 1 為 3
};

在函數(shù)體里使用枚舉

#include <stdio.h>

enum color_em {
    red_color = 0,
    green_color, //自動 + 1 為 1
    yellow_color,//自動 + 1 為 2
    black_color, //自動 + 1 為 3
};

int main(int argc,char* argv[]){
   enum color_em colorEm;
   //把red_color賦值給 枚舉類型(enum)
   colorEm = black_color;
   printf("The color is: %d\n",colorEm);
   return 0;
}

運行結(jié)果

output 結(jié)果

注意:struct 與 enum 在定義之時的語法差異沛慢,struct 各 filed ; 隔開赡若、enum 各filed , 隔開。

6.文件操作

6.1 文件操作流程

文件操作流程
  • 文件類型 FILE* file = 使用指針指向文件
  • 打開文件 FILE* fopen(path,mode) = fopen函數(shù)調(diào)用返回文件句柄
  • 關(guān)閉文件 fclose(FILE*) = 銷毀文件句柄团甲,釋放資源

6.2 c語言操作文件實操->testfile.c

#include<stdio.h>

int main(int argc,char* argv[]){
   //1.聲明文件句柄
   FILE* file;
   //2.聲明空buff,用來讀取文件中的內(nèi)容
   char buf[1024] =  {0, };
   //3.內(nèi)容寫入文件的方式為末尾追加逾冬,則游標是處于文件末尾位置的
   file = fopen("hello.txt","a+");
   //4.["寫入的文本內(nèi)容",一個字符占用n個字節(jié),被寫入文本的字符數(shù),文本寫入的file目的地]
   fwrite("hello,bofeng!",1,13,file);
   //5.將文件末尾游標復位到文件最開頭的位置,否則 將文件中內(nèi)容讀取到空buf時躺苦,buf中數(shù)據(jù)為空
   rewind(file);
   //6.將file中內(nèi)容讀取到buf 中身腻,1表示一個字符占1個字節(jié),13表示讀取從游標開始的n個字符匹厘,因程序已經(jīng)運行過若干遍嘀趟,所以可以讀取 n*13個字符
   fread(buf,1,26,file);
   //7.關(guān)閉文件,釋放資源很重要,要知道在c/c++中充斥著各種手動close resource 的操作
   fclose(file);
   //8.輸出buf中內(nèi)容
   printf("The file content is: %s\n",buf);
   return 0;
}

運行結(jié)果

output 結(jié)果

7.Linux/Mac c語言編譯器

  • MacOS 操作系統(tǒng)上的c語言編譯器是CLANG;
  • Linux 操作系統(tǒng)上的c語言編譯器是GCC愈诚。

7.1 常用 gcc/clang 命令參數(shù)如下所示:

gcc/clang 常用命令參數(shù)

8.感想

今天的思考有兩點:
關(guān)于技術(shù)提升

如果有幸我的文章你讀到了這里她按,你或許會有疑問,為什么這么簡單的問題都要記錄炕柔?很簡單:不積跬步無以至千里酌泰。

關(guān)于發(fā)展

以發(fā)展的眼光看身邊的人、身邊的事匕累、摒棄個人經(jīng)驗主義陵刹、甚至是群體經(jīng)驗主義。說個有意思的故事:郭沫若是家喻戶曉的作家欢嘿,可你是否知道小時候的他字寫的非常潦草衰琐、完全看不出有以后會成為作家的跡象。身邊長輩都說這孩子以后肯定不是握筆的料炼蹦〉舛可事實是他確實成為了作家,并且主編了《中國史稿》和《甲骨文合集
所以個人經(jīng)驗主義在某些方面并不可信框弛、甚至是群體經(jīng)驗主義也不太可信,比如說三歲看小捕捂、七歲看老瑟枫。

關(guān)于公眾號

精進!
道友們指攒,你們好慷妙。早前個人就有開設(shè)公眾號的念想,今年10月終于開搞了允悦。
我的個人的 訂閱號--T客來了膝擂;
平時自己會總結(jié)一些后端開發(fā)相關(guān)的技術(shù);
最近也迷上了音視頻開發(fā)相關(guān)技術(shù);

技術(shù)分享包括:

  • 1.FFmpeg 工程實戰(zhàn)架馋、
  • 2.數(shù)據(jù)庫 MySQL原理與實戰(zhàn)狞山、
  • 3.Redis中間件、
  • 4.Nginx叉寂、Java并發(fā)編程萍启、
  • 5.Go語言方面的技術(shù)知識與實操;
  • 6.有趣味的心理學


    T客來了

微信掃碼就可以添加哦~

注意:此視頻整理自慕課網(wǎng)實戰(zhàn)課程-FFmpeg音視頻核心技術(shù)精講與實戰(zhàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屏鳍,一起剝皮案震驚了整個濱河市勘纯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钓瞭,老刑警劉巖驳遵,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異山涡,居然都是意外死亡堤结,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門佳鳖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霍殴,“玉大人,你說我怎么就攤上這事系吩±赐ィ” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵穿挨,是天一觀的道長月弛。 經(jīng)常有香客問我,道長科盛,這世上最難降的妖魔是什么帽衙? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮贞绵,結(jié)果婚禮上厉萝,老公的妹妹穿的比我還像新娘。我一直安慰自己榨崩,他們只是感情好谴垫,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著母蛛,像睡著了一般翩剪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上彩郊,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天前弯,我揣著相機與錄音蚪缀,去河邊找鬼。 笑死恕出,一個胖子當著我的面吹牛询枚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剃根,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哩盲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了狈醉?” 一聲冷哼從身側(cè)響起廉油,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苗傅,沒想到半個月后抒线,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡渣慕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年嘶炭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逊桦。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡眨猎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出强经,到底是詐尸還是另有隱情睡陪,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布匿情,位于F島的核電站兰迫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏炬称。R本人自食惡果不足惜汁果,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玲躯。 院中可真熱鬧据德,春花似錦、人聲如沸跷车。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽姓赤。三九已至,卻和暖如春仲吏,著一層夾襖步出監(jiān)牢的瞬間不铆,已是汗流浹背蝌焚。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留誓斥,地道東北人只洒。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像劳坑,于是被迫代替她去往敵國和親毕谴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容