printf函数遵守C调用规范,即参数 从右至左 压栈,堆栈由调用者平衡

 printf函数遵守C调用规范,即参数 从右至左 压栈,堆栈由调用者平衡。(这种从右至左的方式不会随着编译器,机器的不同而不同) )。 [code] printf("%d,%d", i, i++ );   产生的汇编码大致像下面这样: mov      ...

2014-04-08 09:24:39

阅读数:851

评论数:1

树和二叉查找树的实现

树的声明。和二叉查找树的实现

2013-08-19 17:06:08

阅读数:772

评论数:0

C的xml编程文章链接

官方地址:http://www.xmlsoft.org/ http://hi.baidu.com/singyea/item/ed4d1c335a9527b8633aff82 http://os.chinaunix.net/a2007/1213/977/000000977010.shtml h...

2013-07-09 10:41:21

阅读数:738

评论数:0

指针相关。。

2.13 以下的初始化有什么区别?char a[] = "stringliteral"; char *p = "stringliteral"; 当我向 p[i] 赋值的时候, 我的程序崩溃了。 字符串常量有两种稍有区别的用法。用作数组初始值 (如同在 c...

2013-06-19 16:28:29

阅读数:645

评论数:0

表达式树

用到了栈,并且递归实现了中序遍历,后序遍历,前序遍历。 同时应该学会union的使用方法。 基础知识: 一、表达式树          表达式树的树叶是操作数(operand),加常数或变量名字,而其他的结点为操作数(operator)。由于这里所有的操作都是二元的,...

2013-06-18 21:30:45

阅读数:14640

评论数:2

利用数组栈将中缀表达式转换成后缀表达式

#include #include #include typedef struct Mystack *Stack; struct Mystack { int Capacity; /* 栈的容量 */ int Top_of_stack; /* 栈顶下标 */...

2013-06-18 11:15:09

阅读数:1502

评论数:0

用栈计算逆波兰式

#include #include #include typedef struct Mystack *Stack; struct Mystack { int Capacity; /* 栈的容量 */ int Top_of_stack; /* 栈顶下标 */...

2013-06-18 00:50:47

阅读数:2459

评论数:1

栈的应用---平衡符号

判断一行字符串输入"各种括号"是否是合法的-----------------------栈用数组实现 如:[()]是合法的(balance) [(])是不合法的(imbalance) #include #include #include typedef str...

2013-06-17 23:23:59

阅读数:2673

评论数:2

C语言中的-------结构

struct point {     int x;     int y; }; 1.关键字struct引入结构声明。struct后面的名字是可选的,称为结构标记(这里为point).结构标记用于为结构命名,在定义之后,结构标记就代表花括号内的声明,可以用它作为该声明的简写形式。 结构体中的变量称为...

2013-06-17 14:07:28

阅读数:1019

评论数:0

求最长子序列和

法一:O(n^3) #include #include int sub_Sum(int a[], int left, int right) { int i, temp_sum = 0; for(i = left; i <= right; i++) { ...

2013-06-09 00:58:31

阅读数:4477

评论数:3

C语言声明一维动态数组

#include #include int main() {     int i, n;     printf("Please input a integer n:");     scanf("%d", &n);     int...

2013-06-09 00:20:39

阅读数:2091

评论数:0

使用inotify进行文件事件通知

#include #include #include #define MAX_EVENTS 256 #define BUFFER_SIZE (MAX_EVENTS * sizeof(struct inotify_event)) int register_watchpoint(int f...

2013-04-25 21:39:00

阅读数:727

评论数:0

IPC机制---共享内存编程

#include #include #include #include #include #include #include "common.h" #define MAX_STRING 5000 typedef struct { int semID; ...

2013-04-25 15:47:19

阅读数:753

评论数:0

编译简介

平台:linux 编译器:GCC 源文件:hello.c 到底GCC在将源文件编程可执行文件的时候做了什么工作呢,首先你得 指导GCC的常用命令吧,GCC在工作的步骤为: 1. 预编译   命令: gcc -E hello.c -o hello.i      或者 cpp hel...

2013-04-21 23:10:00

阅读数:497

评论数:0

宏与内联函数的区别

第一部分:宏 为什么要使用宏呢? 因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和...

2013-04-14 09:51:06

阅读数:562

评论数:0

C中为什么要用内联函数

inline 这个名称可以反映出它的工作方式,函数会在它所调用的位置上展开.这么做可以消除函数调用和返回所带来的开销(寄存器存储和恢复),而且,编译器会把调用函数的代码和函数本身放在一起进行优化,所以有进一步优化代码的可能. 不过这么做是有代价的,代码会变长,这也就意味着占用更多的内存空间或者占...

2012-12-09 09:40:52

阅读数:1227

评论数:0

指针数组与二維数组的区别

下面有两个定义: int a[10][20]; int *b[10]; 其中a是一个真正的二維数组,它分配了200个int类型的存储空间,并且通过常规的矩阵下标运算可以得到矩阵元素, 对于b来说,该定义仅仅分配了10个指针,并且没有对它们初始化,它们的初始化必须以显示的方式进行,比如静态初...

2012-12-06 13:15:19

阅读数:854

评论数:0

C的指针数组

声明: char *lineptr[MAXLINES] 它表示lineptr是一个具有MAXLINES个元素的一維数组,其中数组的每一个元素是一个指向字符类型对象的指针,也就是说,lineptr[i]是一个字符指针,而*lineptr[i]是该指针指向的第i个文本行的首字符. 例:...

2012-12-04 23:37:28

阅读数:594

评论数:0

getopt()函数的使用方法

1.头文件: #include 2.函数原型: int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg;   //如果选项接受参数的话,那么optarg就是选项的参数指针 e...

2012-11-27 22:55:57

阅读数:500

评论数:0

strdup()函数的用法

函数原型:extern char *strdup(char *str) 参数说明:str待复制的字符串。        所在库名:#include   函数功能:实现复制字符串str。   返回说明:返回复制的新字符串的指针,复制失败返回NULL。 例子: #include...

2012-11-27 22:21:45

阅读数:417

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭