Time of Update: 2018-12-05
堆和棧的區別一、預備知識—程式的記憶體配置一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。2、堆區(heap) — 一般由程式員分配釋放, 若程式員不釋放,程式結束時可能由OS回收 。注意它與資料結構中的堆是兩回事,分配方式倒是類似於鏈表,呵呵。3、全域區(靜態區)(static)—,全域變數和靜態變數的儲存是放在一塊的,初始化的全域變數和靜態變數在一塊地區, 未初始化的全域
Time of Update: 2018-12-05
數組作為參數傳給函數時傳的是指標而不是數組,傳遞的是數組的首地址,如: void Func ( char str[100]) {…… } 則sizeof(str) = 4 str數組作為虛參聲明時,sizeof(str)=4(指標大小) strncat 原型:extern char *strncat(char *dest,char *src,int n); 用法:#include
Time of Update: 2018-12-05
父類: class CParent { .... }; 繼承類的聲明比較特別: class CChild : virtual public CParent { .... } 請問,這個"virtual"是什麼作用及含義? --------------------------------------------------------------- 表示虛擬繼承,和普通繼承是C++的兩種多重繼承方式。 例如CB1、CB2 繼承CA
Time of Update: 2018-12-05
YUV是指亮度參量和色度參量分開表示的像素格式,而這樣分開的好處就是不但可以避免相互幹擾,還可以降低色度的採樣率而不會對映像品質影響太大。YUV是一個比較籠統地說法,針對它的具體相片順序,可以分為很多種具體的格式。YUV格式解析1(播放器——project2)根據板卡api設計實現yuv420格式的視頻播放器開啟*.mp4;*.264類型的檔案,實現其播放。使用的視頻格式是YUV420格式YUV格式通常有兩大類:打包(packed)格式和平面(planar)格式。前者將YUV分量存放在同一個數組
Time of Update: 2018-12-05
文章目錄 1.1 如何開機1.2 與我何幹1.3 有何問題2.1 命令模式來解決2.2 模式結構和說明2.3 命令模式範例程式碼 1.1 如何開機 估計有些朋友看到這個標題會非常奇怪,電腦裝配好了,如何開機?不就是按下啟動按鈕就可以了嗎?難道還有什麼玄機不成。
Time of Update: 2018-12-05
1.局部變數能否和全域變數重名?答:能,局部會屏蔽全域2.如何引用一個已經定義過的全域變數答:extern3.全域變數可不可以定義在可被多個.c檔案包含的標頭檔中?答:可以,在不同的c檔案中以static形式來聲明同名全域變數4.語句for(; 1; )有什麼問題?它是什麼意思答:死迴圈5.程式中,全域變數、靜態變數存在於(全域資料區)局部變數存在於(堆棧中),動態申請資料存在於(堆)中6.隊列和棧有什麼區別?答:隊列先進先出,棧後進先出7.對於一個頻繁使用的短小函數,在C語言中用什麼實現,C+
Time of Update: 2018-12-05
/***********************************《程式員面試寶典》第二版筆記*******************************************/指派陳述式1.what does the following program print?#include <stdio.h>int main(){int x=2,y,z;x *= (y=z=5); //5賦值給z再賦值給y, x = x*5 =10;printf("x=%d\n", x);z =
Time of Update: 2018-12-05
Audio PCM音頻編碼的源資料一般都是PCM(Pulse-codemodulation),說穿了就是將類比訊號的資料經過數字採樣,量化以後的聲音。舉個簡單的例子,比如一個正弦波的聲音,我們從x座標根據時鐘來採集訊號,然後將這些x對應的Y值經過一定的運算最後儲存為位元據,這就是脈衝調製編碼PCM的基本原理。而我們對音訊編碼就是基於這個PCM,對其進行編碼或者經過重新採樣後進行編碼。當然PCM也有很多種,使用了一些比較先進的'%BC%BC%CA%F5');"
Time of Update: 2018-12-05
1 Surfaceflinger線程 Surfaceflinger是一個類,同時又是線程,該線程通過迴圈,不斷計算並重新整理當前螢幕需要的顯示內容。Surfaceflinger線程屬於SystemServer進程,也就是在SystemServer進程中啟動了Surfaceflinger線程。 Surfaceflinger中儲存著各種layer,其主要工作就是負責各種layer的融合,因此可看做一個用於維護各種layer的線程。 啟動Android線程需要提供兩個介面,一是readyToRun()
Time of Update: 2018-12-05
有符號數就是用最高位表示符號(正或負),其餘位表示數值大小,無符號數則所有位都用於表示數的大小有符號數就是用最高位表示符號(正或負),其餘位表示數值大小如:0011 表示 +3; 1011 表示 -3無符號數則所有位都用於表示數的大小如:0011 表示 3 1011 表示 11 假如,int一樣吧,signed int【有符號整型】=-2147483648~2147483648unsigned int【無符號整型】=0~4294967295有沒有發現,2147483648 X2=42
Time of Update: 2018-12-05
bs是瀏覽器(browser)和伺服器(server) cs是靜態用戶端程式(client)和伺服器(server) 區別在於,雖然同樣是通過一個程式串連到伺服器進行網路通訊,但是bs結構的,用戶端運行在瀏覽器裡,比如你看百度,就是通過瀏覽器.還有一些bs結構的應用,比如中國電信,以及一些電子商務平台.用bs結構的好處是,不必專門開發一個用戶端介面,可用asp,php,jsp等比較快速開發web應用的程式開發.
Time of Update: 2018-12-05
Open-Closed Principle 軟體設計中的“開-閉原則” 這個原則最早是由Bertrand Meyer提出,英文的原文是:Softwareentities should be open for extension,but closed
Time of Update: 2018-12-05
1.開啟檔案 if((fp = fopen(FILE_NAME, "rb+")) == NULL)2.得到檔案的長度 fseek(ap->fp, 0L, SEEK_END); file_size = ftell(fp); if(-1L == file_size) { printf("ftell() error!/n"); return; }3.建立等大小的緩衝 char *buffer =
Time of Update: 2018-12-05
Matroska是一種新的多媒體封裝格式,它可將多種不同編碼的視頻及16條以上不同格式的音頻和不同語言的字幕流封裝到一個MatroskaMedia檔案當中!目錄概覽常見問題主要解碼軟體MKV的前途 editable-title">編輯本段概覽 多媒體封裝格式也稱多媒體容器 (Multimedia Container),它不同於DivX、
Time of Update: 2018-12-05
calloc是一個C語言函數 函數名: calloc 功 能: 在記憶體的動態儲存裝置區中分配n個長度為size的連續空間,函數返回一個指向分配起始地址的指標;如果分配不成功,返回NULL。 跟 malloc的區別: calloc在動態分配完記憶體後,自動初始化該記憶體空間為零,而malloc不初始化,裡邊資料是隨機的垃圾資料。 用 法: void *calloc(unsigned n,unsigned
Time of Update: 2018-12-05
Google為Android應用開發提供了eclipse加外掛程式作為開發工具,基於eclipse可以方便調試apk,而對於底層開發人員(比如opencore開發)沒有提供類似直觀的開發工具及調試手段。本文旨在介紹一種基於ddd+gdbserver的調試方法,用於類似opencore的C層面的程式調試。 具體步驟如下:開一個shelladb shellps查看mediaserver進程號gdbserver :5039--attach
Time of Update: 2018-12-05
裝置管理是linux中比較基礎的東西,但是由於Linux智能程度的越來越高,Udev的使用越來越廣泛,使得越來越多的Linux新使用者對 /dev 目錄下的東西變得不再熟悉。有時候遇見問題就會變得抓狂本文是我在寫作《DIY 一個基於LFS的實用 Mini-LAPP
Time of Update: 2018-12-05
從Java 1.1開始,JavaNative
Time of Update: 2018-12-05
#include <unistd.h>;#include <sys/types.h>;main (){ pid_t pid; pid=fork(); if (pid < 0) printf("error in fork!"); else if (pid == 0)
Time of Update: 2018-12-05
1.註冊字元裝置使用int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);ret = register_chrdev(LED_MAJOR, DEVICE_NAME, &led_ops);@major:主裝置號@name:裝置名稱@fops:操作函數移除字元裝置使用int unregister_chrdev(unsigned int major, const char