C C++
dianxer
这个作者很懒,什么都没留下…
展开
-
C中的预编译
预编译发生在编译之前会检查.C文件中的所有#开始的语句。#define.其实是对.c文件的一系列replace,例如例1.a.h#define WIDTH 768#define HEIGHT 1260#define Area‘ = WIDTH * HEIGHT 预编译检查的时候会去除# 并进行替换#define Area‘原创 2012-03-14 22:42:28 · 376 阅读 · 0 评论 -
线性查找
int IntCmp(void *vp1,void *vp2){ if(vp1!=NULL && vp2!=NULL) { return *(int*)(vp1)- *(int*)(vp2); } return -1;}void *lsearch(void *key,void *base,int elemsize,int size,int(*cmp)(void*,void*))原创 2012-03-06 01:04:54 · 404 阅读 · 0 评论 -
__cdecl和__stdcall
1.如果函数func是__cdecl(默认调用方式),调用时情况如下 int main() { //参数从右到左压栈 push 4 push 3 push 2 push 1 call func add esp 0x10 //调用者恢复堆栈指针esp,4个参数的大小是转载 2012-03-06 00:41:16 · 384 阅读 · 0 评论 -
内存对齐
int 占据4字节的,内存分配从地址为4的倍数开始short 占据2字节的,内存分配从地址为2的倍数开始 struct student{char *name;char idcard[8]; short age;}Sizeof(char*) = 4/ sizeof(idcard)=8*1 / sizeof(short)=2.原创 2012-03-05 12:17:04 · 286 阅读 · 0 评论