




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、變量命名的開頭方式boolis_charstr_Intn_longl_floatf_doubled_全局變量g_指針p_靜態(tài)變量 s_宏命名都要用大寫2的N次方011224384168256951210 102416 65536312147483648(21億)324294967296(42億)63 922337203685477580864 18446744073709551616二進制表:二進制八進制十進制十六進制00000000000010011100100022200110033301000044401010055501100066601110077710000108810010119
2、9101001210A101101311B110001412C110101513D111001614E111101715F應(yīng)該記住的ASII碼0 0149A65a97這個選項可以改變VC的TAB為空格,以適應(yīng)和記事本文本對齊一至這個選項可以改變VC的數(shù)字和字符的顏色,可以和變量區(qū)分開可以把警告變成錯誤原碼,補碼,反碼:一個正數(shù)的三碼相同9 0000 1001一個負數(shù)原碼:-91000 1001反碼:-91111 0110補碼:-91111 0111N+N補9+(-9) = 0000 10011111 0111 = 1 0000 0000N+N反9+(-9) = 0000 1001 1111 0
3、110 = 1111 1111float的二進制表示方式:895.75895 1101 1111 11 1011 1111 1 注意這里去掉開頭的10.75 110 乘2取11.101 1111 11.11 09127136 (double1023)1361000 1000依次為符號位,指數(shù)位,數(shù)字位0 10001000 1011111111100100 0100 0101 1111 1111 0000 0000 00004 4 5 F F 0 0 0Float的指數(shù)位占8個Double的指數(shù)位占11個先計算&,再計算|Printf函數(shù)的返回值是int,值是打印的個數(shù),rn也算在內(nèi)rand()
4、是隨即數(shù)函數(shù),需要包含#include “stdlib.h”這個頭文件,可以用取余來隨即不同的數(shù)字,例如rand()10,就是不大于10的隨即數(shù)。VC里有_int64,可以定義8個字節(jié)的整型變量。人類采用十進制是因為人有10個指頭。Bug是蟲子的意思,最開始是在硬件里找吃硬件的蟲子,后來演化成調(diào)試程序。ALU是運算器 CU是控制器由于磁盤是由磁來判斷0和1的,所以可以由改變磁頭判斷磁的強弱來得知被覆蓋的數(shù)據(jù),所以美國軍方的磁盤標(biāo)準(zhǔn)的銷毀方式是反復(fù)清0和1共7次,最后研磨成粉。ASM C C#甲骨文 古文 現(xiàn)代文由此可見是有硬件條件來決定語言的內(nèi)容豐富程度的馮 諾依曼 (JOHN VON NEU
5、MANN)第一個制作計算機的人。阿達(ADA)第一個寫程序的人。100個蘋果,用二進制放到10個箱子里,就可以要多少都能拼出來。用孤獨九劍比喻C+,C,JAVA編譯語法,用倚天劍來比喻VC6.0,VS2005編譯工具怎樣用CL編譯程序:上圖是CL和LINK的存放位置新建一個a.c的程序,在cmd下,鍵入CL a.c /c,會生成c.obj文件,再用LINK命令LINK a.obj生成能a.exe文件。CL時可以生成a.i的中間文件 CL a.c /c/P 注意P要大寫可以用a.exe a.txt將打印的東西輸出到文本上。變量是對地址的重命名。一個編譯器的好壞有三個標(biāo)準(zhǔn):速度,體積,編譯時間小數(shù)
6、的存儲方式:浮點法和定點法。bool和char占用空間都是1個字節(jié)。如果只定義一個變量,就存在內(nèi)存對齊的問題,其它三個字節(jié)都浪費掉。If(x=3)這個為真If(x=0)這個為假VC里AltF8可以自動排序goto一般用于跳出多層循環(huán)和異常處理|和&可以判斷運行,表示短路,可以寫短路遞歸在制作人類性別的程序時,不能用BOOL變量,因為有4種情況,男,女,其他,不詳。用log10()函數(shù)可以取出一個數(shù)有幾位log10(x)1If()后面一定要加,是為了防止加多個分號的宏,很難調(diào)試用goto和break編譯出的匯編代碼是一樣的for要用3個goto,while要用2個goto,do_whlie用1個
7、gotogoto的標(biāo)示一定要用大寫的。求素數(shù)就象吃壞雞蛋,吃一口是壞的,就break跳出。system(“pause”)可以暫停CMD程序函數(shù)的調(diào)用:1. 傳參,傳遞參數(shù)2. 保存返回地址3. 保存寄存器環(huán)境4. 申請局部變量的空間,并初始化為cc(debug)5. 執(zhí)行函數(shù)體,撤銷局部空間6. 恢復(fù)寄存器環(huán)境7. 回到保存地址8. 平衡參數(shù)棧代碼棧1. 代碼2. 數(shù)據(jù) 靜態(tài)變量和全局變量3. 棧局部變量和參數(shù)4. 堆申請空間數(shù)組求地址公式type aryxary addr+sizeof(type)*xInt i5,已知i的首地址是0012FF6C,求i40012FF6C+44= 0012FF
8、6C+10(十進制是16)= 0012FF7Ctype aryxyInt i56,已知i的首地址是0012FF08,求i3aryxary addr+sizeof(typey)*x0012FF08+4X6X3 = 0012FF08+48(十進制是72)= 0012FF50Int i56,已知i的首地址是0012FF08,求i34aryxary addr+sizeof(typey)*x+sizeof(type)*y0012FF08+4X6X3+ 4X4= 0012FF0848(十進制是72 )+10(十進制是16)= 0012FF60可以用sizeof(ary)/sizeof(ary0)來求一維數(shù)
9、組中變量的個數(shù)硬件設(shè)備就是抽象成文件memcpy(拷貝到的地方,數(shù)據(jù)源,內(nèi)存塊)fflush(stdout) _flushall()清除緩存a6=5,0,1,2,3,4,第一個元素可以記錄數(shù)組的個數(shù)xa = 10 xff=255#define getchar getc(stdin)strlwr轉(zhuǎn)小寫 strupr轉(zhuǎn)大寫 strcmp字符比較 stricmp字符不區(qū)分大小寫比較所有的全局變量都是靜態(tài)變量全局變量的默認值都是0全局變量和靜態(tài)變量的地址很近寄存器變量register int n 只限于4個字節(jié)的變量 int char 指針 宏斷行用#define for if(0);else for
10、帶參宏要把參加括號強內(nèi)聚,低偶合函數(shù)puts輸出字符串后自動換行字符的輸入輸出:getchar putchar字符串的輸入輸出:gets puts作用域:文件作用域函數(shù)作用域進程作用域塊作用域在一個函數(shù)內(nèi)定義了一個與全局變量名相同的局部變量,則局部變量有效,全局變量在該函數(shù)內(nèi)不起作用。#define pr(ary) printf(#ary) 定義字符串 應(yīng)用舉例: pr(123456789);#define float f#define F(name) f#name 定義源碼的拼接 應(yīng)用舉例: float F(abcd);F(abcd)=5.13f;#Ifndef xxxx#define xx
11、xx.#endif xxxx#define debug 1#ifdef debugprintf(“調(diào)試”);#endif宏注釋#define IN#define OUTFun(IN int i,OUT int j)兩同類型的指針相減:type *ptr1 =&x;type *ptr2 =&y;ptr1-ptr2=(int)ptr1-(int)ptr2)/sizeof(type);type *ptr = &xptr +n (int)ptr + sizeof(type)*n求文件入口的公式,自己寫的:#define B (int *)0 x00400000int *pn=NULL;pn=B+*(B
12、+*(B+15)/4+10)/4;指針訪問內(nèi)容不一定可以提高速度*和指針貼在一塊*p正確* p錯誤新定義一個指針時要把它定義成NULL,防止誤訪問代碼規(guī)范:指針型和NULL比較,整型和0比較CRTL+G轉(zhuǎn)到地址處void *pa = &a0 *pa到用時才強制轉(zhuǎn)換While(*a = *b) 等價于 while(*a =*b = 0)#pragma warning (disable : 4700) 可以忽略4700版本的警告對內(nèi)存的操作要象保險柜取錢,用完要關(guān)閉C語言規(guī)定,數(shù)組名代表數(shù)組的首地址,也是第一個數(shù)組元素的地址。C語言規(guī)定,如果一個數(shù)組的元素都是指針的類型,則稱之為“指針數(shù)組”,如:
13、int *a3* 1表示乘法 2表示定義指針 3表示指針取內(nèi)容int (*p)3=NULL;p+;int *p3=NULL;p+;P的地址位移12,數(shù)組指針P的地址位移 4,指針數(shù)組用指針排序相對于交換字符串(多于4字節(jié))的排序,他訪問慢(先取地址,再找內(nèi)容),但是排序快,只是交換地址,沒有交換內(nèi)容返回指針值的函數(shù):int *fun(int x,int y) 函數(shù)的返回值應(yīng)該是值,不能是地址或是指針,否則有可能溢出函數(shù)的指針:int (*pfn)()避免流程嵌套:If(funa() if(funb() If(!funa() return 0; if(!funb() return 0;void
14、funa() printf(funa);void funb() printf(funb);int main(int argc, char* argv) int i; void (*pfn2)()=funa,funb; for (i=0;i2;i+) pfni(); return 0; int a5=1,2,3,4,5; int *p=a;for(;pa+5;) printf(%p:%drn,p+,*p); 地址的減法是要除以sizeof的。函數(shù)外的指針要想改變,要傳指針的指針type amn;type *p =a0;aij*(p+i*n+j);static char *str = how,ar
15、e,you;char *p;p=str+1;printf(%srn,*p); /areprintf(%crn,*p); /a int a23=1, 2, 3, 4, 5, 6; int *p = NULL; p = &a00; printf(%prn,a); /const int (*a)3 printf(%prn,a0); /const int * printf(%prn,a00); /const int * printf(%prn,*a); printf(%prn,a+1); printf(%prn,*(a+1); printf(%prn,*a+1); printf(%prn,*(*a+1
16、); printf(%prn,p); printf(%prn,*p); printf(%prn,p1);這個參數(shù)可以增加編譯出來程序的命令行參數(shù)這個選項可以改變結(jié)構(gòu)體內(nèi)存對齊的問題 int a23=1,2,3,4,5,6; int *p1 = NULL; p1 = &a00; int *(*p) = &p1;/ (*p)+;/ p+;/ p1+; printf(%prn,p); printf(%prn,*p); printf(%prn,p1);int main(int argc, char* argv, char* envp) int i; for (i = 0; i 3 2的32+3次方/1
17、1b是無符號數(shù)a是有符號數(shù)a/5 = a* 1 + 符號位2的32+1次方/52的32+1次方/5縮小2的1次方倍符號位x/2 c編譯器優(yōu)化:按c語言規(guī)則,除法是向下取整的,3/2 = 1若x為正偶數(shù),x/2等價于x1若x為正奇數(shù),x/2等價于(x-1)/2,等價于x1,或者(x-1)1所以正整數(shù)的情況下,不用處理,直接位移按補碼格式規(guī)定,若x為負偶數(shù),x/2等價于x1若x為負奇數(shù),這時候(-3)/2 = -1,除法變成了向上取整x/2等價于(x+1)/2等價于(x+1)1所以負數(shù)情況下不能直接位移,需要加1手工優(yōu)化asm代碼是項目的結(jié)尾1.Bat文件md %1_sigcd %1_sigfor /F %i in (link -lib /list %1.lib) do link -lib /extract:%i %1.libfor %i in (*.obj) do pcf -g0 %isigmake -nMyLIBC *.pat MyLIBC.Sigdel *.objrem cd.去掉需要的文件1234對著函數(shù)按num的+和-可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川2025年02月四川省屏山縣發(fā)展和改革局公開招考4名編外聘用人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025通遼市蒙遼水務(wù)有限責(zé)任公司校園招聘筆試參考題庫附帶答案詳解
- 跨境教育資源的開發(fā)與利用
- 通史版2025版高考歷史大一輪復(fù)習(xí)第16單元經(jīng)濟全球化的世界與現(xiàn)代的科技文藝微專題強化練十中外政府關(guān)注民生社會優(yōu)撫的舉措教案含解析人民版
- 烏魯木齊翻譯合同范本
- 柳州專版2025版中考歷史奪分復(fù)習(xí)第06部分九下第5課第二次工業(yè)革命實戰(zhàn)演練
- 小學(xué)心理教育家長教育妙招你贏了孩子還是贏得孩子
- 連云港專版2024中考地理復(fù)習(xí)方案第四部分中國地理上第14課時中國的地形強化訓(xùn)練
- 餐飲業(yè)財務(wù)分析報告盈利能力與市場策略
- 浙江國企招聘2024紹興市上虞杭州灣建設(shè)開發(fā)集團有限公司招聘1人筆試參考題庫附帶答案詳解
- 雙均線策略(TBQ版)
- 北京房屋租賃合同電子版7篇
- 《園林機械使用與維修》課件-任務(wù)3.園林養(yǎng)護機械
- deepseek-r1論文-中文翻譯版
- 項目式學(xué)習(xí)在小學(xué)數(shù)學(xué)教學(xué)中的應(yīng)用
- 2025年中遠海運物流有限公司招聘筆試參考題庫含答案解析
- 2025中智集團下屬單位公開招聘41人高頻重點提升(共500題)附帶答案詳解
- 設(shè)備維修的基本技能培訓(xùn)
- 產(chǎn)后腹直肌分離治療
- 2025年中國郵政招聘筆試參考題庫含答案解析
- 人教版(2024)七年級英語上冊新教材的變化及教學(xué)建議課件
評論
0/150
提交評論