摘要: 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任 阅读全文
posted @ 2013-10-29 10:01 随风运转 阅读(1171) 评论(0) 推荐(0) 编辑
摘要: #include#define A(x) x;x;x;x;x;x;x;x;x;x;void main(){ int n = 0; A(A(A(printf("%d\n",n++))));}//程序解释#define A(x) x;x;x;x;x;x;x;x;x;x; 这里有十个分号,然后看下面代码,A(A(A(printf ("%d ", n++))));从里到外看,从最里层,A(printf ("%d ", n++)) 吧这个A用宏替换,括号里面是宏的参数,所以printf("%d ", n++)就是参数,被替换 阅读全文
posted @ 2013-10-29 08:30 随风运转 阅读(709) 评论(0) 推荐(0) 编辑
摘要: K&R C 1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被C语言程式设计师称作“K&R C”,第二版的书中也包含了一些ANSI C的标准。K&R C主要介绍了以下特色:结构(struct)类型长整数(long int)类型无符号整数(unsigned int)类型把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =- 10,使得处理上产生混淆。 即使在后来ANSI C标准被提出的许多年后,K& 阅读全文
posted @ 2013-10-28 22:40 随风运转 阅读(254) 评论(0) 推荐(0) 编辑
摘要: /*一个小程序,指针里不容易发现的小错误*///该程序输出的结果不是你输入的那10个整数,检查一下,答案在下面#includevoid main(){ int *p , i , a[10]; p = a; for(i=0;ivoid main(){ int *p , i , a[10]; p = a; for(i=0;i<10;i++){ scanf("%d",p++); } printf("\n"); p = p-10; // 因为第一个for循环将p的值增加了十次,即指针P不再指向原来的数组,所以输出的不是你输入的10个数 也可以改成p = a 阅读全文
posted @ 2013-10-27 07:54 随风运转 阅读(994) 评论(0) 推荐(0) 编辑
摘要: /*用extern声明外部变量,扩展程序文件中的作用域@author xiaohui*/#includeint max(int x,int y){ int z; z = x>y ? x : y; return(z);}void main(){ extern A,B; //定义外部变量,我们可以试试去掉extern printf("%d\n",max(A,B));}int A = 13, B = -8; //执行到extern时 引用此处赋值=========================================================/*将外部变量分 阅读全文
posted @ 2013-10-26 15:43 随风运转 阅读(1086) 评论(0) 推荐(0) 编辑
摘要: #include #include int main(int argc, char *argv[]){ while(1){ //循环进入 printf("input a integer number:\n"); int n ; long result; long recursion(int n); //声明递归函数 scanf("%d" , &n); result = recursion(n); printf("%d ! = %ld\n",n,result); //输出运算结果 } sy... 阅读全文
posted @ 2013-10-26 10:27 随风运转 阅读(331) 评论(0) 推荐(0) 编辑
摘要: #include #include int main(int argc, char *argv[]){ while(1){ int n = 0; printf("please input integer number:"); scanf("%d",&n); void hanoi(int n,char one,char two,char three); //声明hanoi函数 hanoi(n,'A','B','C'); } system("PAUSE"); return 0;}vo 阅读全文
posted @ 2013-10-26 10:22 随风运转 阅读(244) 评论(0) 推荐(0) 编辑