close
1.我BCB 要開啟哪一種檔案? 
A:可以[file] -> [new] -> [unit],產生新的UNIT,將副程式加於最下方,
再將整個程式用下面的方式起來,以避免重覆include,不同檔案使用不
同的INCLUDEDFLAG。

#ifndef INCLUDEDFLAG1
#define INCLUDEDFLAG1
.....整個程式
#endif

2.副程式要否要先獨立編譯? 

A.在主程式include到的檔案,就會自動編譯

3.有基本步驟ㄇ? 簡單介紹可以嗎?

小範例-開啟影像raw data
#ifndef FILEFLAG
#define FILEFLAG
//--------------------------------------------------------------------
#include 
#include 
#include 
#pragma hdrstop

//--------------------------------------------------------------------

#pragma package(smart_init)
//-----------------Open Raw Data File---------------------------------
void openfile(char* filename,int width,int height,byte** img); //加這一行宣告很有用.


//--------------------Open File---------------------------------------

void openfile(char* filename,int width,int height,byte** img)
{
int i,filesize,x=0,y=0;
FILE *fp;
byte *data;

fp=fopen(filename,"rb");

filesize = width*height;
data=(byte*)malloc(sizeof(byte)*filesize);
fread(data,1,filesize,fp);
for(i=0 ; i {
    img[y][x++]=data;
    if(x==width)
    {
        y++;
        x=0;
    }
}

free(data);
fclose(fp);
}
//---------------End openfile-----------------------------------------
#endif




 為什麼要將副程式獨立出來呢?我個人覺得是為了讓程式共享,假設用bcb寫的
程式,寫得很精彩,數千行程式擠在bcb的主程式,當別人要引用你的程式時,還要
把程式找出來,複製貼上,有時程式碼還用到bcb的元件,如別人用的又不是bcb,
程式遇到bcb元件就沒輒囉,還要另外想辦法更改,實在是麻煩的一件事。
 所以程式盡量寫得不依賴應用程式(software independent),像影像處理的演
算法filter,sobel,DCT,wavelet就經常會使用,如果把它們寫成一個檔案來
引用,寫一支新的程式就不用重新再編寫這些演算法,直接include就可以囉。不
是很方便嗎?的程式就不用重新再編寫這些演算法,直接include就可以囉。不是很方便嗎?
 
 
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 UM程式研究日誌 的頭像
    UM程式研究日誌

    UM程式研究日誌

    UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()