形参如果是字符或整型数组的数组名,用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