優化C 程式編譯效率的實

2021-05-22 05:08:19 字數 1818 閱讀 3249

發帖人:flytothespace

時 間:

詳細資訊:

(1)自定義程式的入口

(2)合併區段

(3)不用調malloc,free等函式

(3)不用cout來輸出,cin來輸入

(4)如果呼叫了很多庫函式如memset,stycpy等等

的話,請匯入msvcrt.lib,不然編譯器會在程式裡面

匯入靜態庫,這樣的話程式就會大很多。。

(5)window程式設計不用mfc...

減少程式執行記憶體佔用量可以呼叫

setprocessworkingsetsize(getcurrentprocess(),-1,-1);

----------sample.cpp---------------------

#include 

#include "sample.h"

#include "mydll.h"

#include "resource.h"

//這下面自定義函式入口

#pragma comment(linker, "/entry:entrypoint")

#pragma comment(linker,"/align:0x400")

//設定區段屬性,跟區段在記憶體起始位址

//這裡面要加寫入的許可權,不然程式就執行不了了

//e為執行,r為可讀,w為可寫

//更多的說明請參見msdn

#pragma comment(linker,"/section:.text,erw /align:0x1000")

//下面合併區段,

#pragma comment(linker,"/merge:.data=.text")

#pragma comment(linker,"/merge:.rdata=.text")

//下面匯入函式

#pragma comment(lib,"mydll.lib")

//下面是函式的入口

//得到winmain裡面的幾個引數

//hinstance hinstance=getmodulehandle(null)

//lpstr lpcmdline= getcommandline()

//int ncmdshow  這個可以自己填

void entrypoint()

int_ptr callback sample::dialogproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)

break;

}return 0;

}sample::sample(hinstance hi)

int sample::wndpro_command(wparam wparam,lparam lparam)

return 0;

}int sample::wndpro_close()

int sample::init()

int sample::loaddll()

uint malloc_(size_t num)

void free_(void * p)

void zeromem(char * mem,int len)

int apientry test(hwnd hwnd)

-----------------------

下面是程式完整的**。。

附件:sample.rar

優化C 程式編譯效率的例項

1 自定義程式的入口 2 合併區段 3 不用調malloc,free等函式 3 不用cout來輸出,cin來輸入 4 如果呼叫了很多庫函式如memset,stycpy等等 的話,請匯入msvcrt.lib,不然編譯器會在程式裡面 匯入靜態庫,這樣的話程式就會大很多。5 window 程式設計不用mf...

C程式的效率優化建議

程式設計時要經常注意 的效率。在保證軟體系統的正確性 穩定性 可讀性及可測性的前提下,提高 效率。效率分為全域性效率 區域性效率 時間效率及空間效率。全域性效率是站在整個系統的角度上的系統效率 區域性效率是站在模組或函式角度上的效率 時間效率是程式處理輸入任務所需的時間長短 空間效率是程式所需記憶體...

眼見為實 編譯器的優化

大家一直都知道有編譯器都會對使用者 進行優化,盡量保證最高效能的 但是沒有任何的現象能證明它對 做了優化處理 也許是大家根本沒有關注過 我今天無意間發現了 除錯的乙個 問題 在vc裡建立個標準c的工程,輸入如下 void main 然後用f10單步跟蹤,你會發現執行完 a 0 這句後就直接跳到了程式...