
C/C++
剑圣风暴
说法是否速读法啊但是发生
展开
-
C内存对齐
#include #pragma pack(4)struct test{int a;char b;// char reserve1;short c;char d;// char reserve2[3];};#pragma pack()int main(void){printf("pack(4)=%d\n", sizeof(test));struct test t[2];return 0;}上面原创 2013-07-20 14:37:09 · 745 阅读 · 0 评论 -
C语言全局变量定义与声明技巧
在实际的编程中,全局变量对我们编程来说既是喜又是泪,虽然说项目中尽量避免使用全局变量,但总有些时候不得不使用它,并且可能使用得不少,各个模块可能有含有或多或少的几个全局变量,而当别的模块需要引用的时候,就必须extern它,造成你定义了一遍又声明了一遍,这样就稍显得麻烦。下面介绍一种全局变量的管理方法,至始至终只定义一次,所有的全局变量以某种声明方式放入一个名叫global.h的头文件中,然后别的原创 2013-09-08 23:16:19 · 8686 阅读 · 0 评论 -
union关键字使用
union关键字的用法与struct的用法基本一致,union仅维护数据成员中占用内存最大的一个空间,也即所有数据成员将共用一个空间,同一时间只能存储其中一个数据成员,所有的成员具有相同的起始地址。比如:union Test{ char a; int b; double c;};在32位系统中sizeof(Test)的值将为8。a,b原创 2013-08-23 11:17:24 · 1407 阅读 · 0 评论 -
循环单向链表
typedef struct LIST{ struct LIST *Next;}LIST;/* * 初始化一个循环单向链表 */void list_init(LIST *head){ head->Next = head;}/* * 判断链表是否为空 */int is_list_empty(LIST *head){ return原创 2013-08-23 09:10:06 · 760 阅读 · 0 评论 -
循环双向链表
#include typedef struct _LIST{ struct _LIST *previous; struct _LIST *next;}LIST;/* * List initialization */void list_init(LIST *list_head){ list_head->next = list_head; lis原创 2013-07-22 15:09:23 · 705 阅读 · 0 评论 -
函数调用时的堆栈结构分析
void func(int a, int b){ int c; c=a+b;}int main(void){ func(3,4); return 0;}编译后的汇编代码如下图所示,当然main函数也是一个调用函数,但是我们不看它,直接看调用func函数的汇编代码。从第11行开始,首先,从最后一个表格看一下压栈前的ebp和esp的值,ebp=0x001原创 2013-07-23 16:09:53 · 1302 阅读 · 0 评论 -
指针和指针的指针
int main(void){ int data = 5; int *pdata = &data; int **ppdata = &pdata; return 0;} 首先在VC6.0里面新建一个C++控制台工程,然后键入以上代码,最后按F10进行调试。在watch窗口中键入如上图所示变量信息,首先,对于第一行data=5没问题;然后对data变量采用取地址符&原创 2013-07-22 18:10:30 · 702 阅读 · 1 评论 -
C文件操作
#include #include #include #define Malloc(type,n) (type *)malloc((n)*sizeof(type))static char *line = NULL;static int max_line_len = 128;static char* readline(FILE *input){ int l原创 2013-08-03 13:02:35 · 864 阅读 · 0 评论 -
采用单链表进行冒泡排序
#include #include typedef struct Node{ struct Node *next; int num;}Node;void bubble_sort(Node* head){ Node* tail = NULL; while(tail != head->next) { Node* pre = head; Node* cur = pr原创 2015-03-27 20:21:16 · 804 阅读 · 0 评论