形參如果是字符或整型數組的數組名,用for循環賦值或strcpy賦值函數結束後可以保留這些值,而形參如果是指針的話,不能用strcpy賦值,而是直接等於,函數結束後不可以保留賦的值。
>>的時候如果超過最低位了,則超過的部分自動消失,無需先&再>>。
如11110101,如果需要取高四位放在低四位上,不需要(11110101 & 11110000)>>4,直接11110101>>4即可,如果11110101前面的位有值則不能這樣,如110011110101,不能去掉&11110000。
如果一個變量abc不同位的值分佈在不同的變量def中,可以不用從abc賦值,而是先解析d,再解析e和f,用a|=來給a賦值。
如果編譯器沒有設置__My_Debug__,則以下代碼段的Test()函數不運行,以此來區分測試和主代碼,測試代碼和主代碼不要寫在一個類中。
#if __My_Debug__
Test();
#endif
__My_Debug__在property(Art + F7)中的C/C++的preprocessordefinitions中放入。
乘法(乘以2的倍數)可以用<<代替,除法(除以2的倍數)可以用>>代替,比如:
1*8 等價於 1<<3
6/8等價於 6>>3
fWidth %8等價於fWidth &0x07
按8的長度來算,如果最後有剩餘,加一。
fBytesPerRow += 1;
}
按8來分段,求最後不夠8長度的剩餘的點數。
unsigned short blockoffset = x&0x07;
在類中初始化賦值或在函數中賦值的不變的成員變量,獲取的時候在函數最後加const,防止變量被隨意改動。
unsigned short fW;
unsigned short fV;
unsigned short fY;
unsigned short W() const {return fW;};
unsigned short V() const {return fV;};
unsigned short Y() const {return fY;};
unsigned short X() const {return W();};
unsigned short width() const {return fW;}
unsigned short height() const {return fV;}
unsigned short finderSize() const { returnfFinderSize;};
UINT GetSelectedCount( ) const;
該函數返回列表視圖控件中被選擇列表項的數量。
voidComl_BarGen_MaxiCode_Module::fillBlock(unsignedchar*block,unsignedintstride,unsignedshortoffset)
{
unsignedchar* prow = (unsignedchar*)0;
unsignedint rowid = 0;
for(rowid=0; rowid <height(); ++rowid) {
prow= block + rowid * stride;
EdgeList* rowtempl =getRowTemplate(rowid);
fillRow(prow,offset, rowtempl);
}
}
在一個函數中要保證某個參數或功能滿足一定條件,可以用assert函數,assert(false)爲報錯,assert(true)爲正確。
Ex.
assert(x<1)爲x應小於1,不然即報錯。
voidComl_BarGen_2DRenderMaxicode::drawCellAt(unsignedintx,unsignedinty)
{
assert(x<fWidth && y<fHeight);
assert(x+fModule->width() <fWidth && y+fModule->height() <fHeight);
unsignedchar* pblock = fImgbuff+ (y*fBytesPerRow+(x >> 3 ));
unsignedshort blockoffset =x&0x07;
fModule->fillBlock(pblock,fBytesPerRow, blockoffset);
}
MFC中獲取窗口句柄及相關函數
首先,窗口句柄,在窗口類中直接使用成員變量m_hWnd,在窗口外最常見是用AfxGetMainWnd (獲取主窗口指針,其成員變量m_hWnd爲主窗口句柄):
HWND hWnd = AfxGetMainWnd()->m_hWnd;
HWND是Windows系統中對所有窗口的一種標識,即窗口句柄。這是一個SDK概念。
CWnd是MFC類庫中所有窗口類的基類。微軟在MFC中將所有窗口的通用操作都封裝到了這個類中,如:ShowWindow等等,同時它也封裝了窗口句柄即m_hWnd成員。
char postalCode[12];
memset(postalCode, 'c', 12*sizeof(char));
result:
cccccccccccc
char* str ="B105";
strcpy_s(postalCode, 5, str);\\只更新了前5個地址的內容,後面沒變。
result:
B105\0ccccccc
strcpy_s(postalCode, 12, str);\\更新了前5個地址內容後,雖然沒有指定值,但也更新爲其他內容。
result:
B105\0-2-2-2-2-2-2-2
strcpy_s(postalCode, str);\\同上
result:
B105\0-2-2-2-2-2-2-2
1. 理解解析器傳給中間模塊的數據結構。(數據結構文件:dgbtool.sdcc.h)
2. 寫出以下命令對應的數據結構的值:(PLW語言規範:plw.xps)
- AA(整數型): 3-1)3-2-6-(1)円弧パスの追加(半徑指定) Page106
- SA(整數型):3-1-1-(1)座標系の指定(整數型) Page37
- DM(整數型):3-3-12-(1)イメージマスクの描畫(整數型) Page157
近日,小弟在研究UCOSVC++版的時候,發現它的頭文件並沒有在當前目錄下,卻可以精確的找到。我估計一定是:VC++編輯器早設置好了,早已經告訴編譯器位置了。再谷歌,百度一下的解。
第一種方法:工程(Project)-->設置(Setting)-->C/C++選項卡 -->分類 選擇“預處理器(Preprocessor)”,在下面有一項“附加包含路徑(AdditionalInclude Files)”,裏面寫上頭文件所在的目錄即可。
第二種方法:Tools->options->Directories,選擇Include Files,在下面添加目錄
安裝gitg:
sudoapt-get install gitg
包含頭文件用相對目錄,因爲絕對目錄在別人的環境下可能找不到,相對目錄在當前目錄前一層用..\.
指針參數只能改變其值,無法改變指針的值,用雙重指針可以。
把一個指針賦給另一個指針,然後對另一個指針進行free以及置空,原始指針內容清楚,但指針地址不變,無法置空。
把double型數據轉換成int型數據的簡單方法:
void
main(
void
)
{
double
d=5.6;
int
i = (
int
)(d+0.5);
printf
(
"%d"
,i);
}
一個數的n次方:
程序要引用math.h文件,使用時
pow(x,y)表示x的y次方。
給一個數開平方:
int m,n; m=sqrt(n); //此語句就是給整數n開平方根了。 printf("%d";m);給一個數x開n次方:
pow(x,1/n)
整數和字符串互相轉換:
atoi、itoa