库
在C库是非常重要的,因为C语言仅支持最基本的功能,它需要。C甚至不包含I / O功能从键盘读取和写入到屏幕上。任何超出基本语言必须由程序员编写的。由此产生的代码块通常放置在库让他们容易重用。我们已经看到标准I / O,或的头,图书馆已经:标准库存在标准I / O,数学函数,字符串处理,时间操作,等等。您可以使用图书馆在自己的项目程序分成模块。这使得它们更容易理解、测试和调试,也可以重用代码从你写的其他项目。
你可以轻松地创建自己的库。作为一个例子,我们将一些代码从本系列之前的文章,使图书馆的功能中的两个。这里的代码,我们将开始:
广告
# include < stdio。10 h > # define马克斯int (MAX);int rand_seed = 10;int rand () / * k和r -产生0到32767之间的一个随机数。* / {rand_seed = rand_seed * 1103515245 + 12345;返回(unsigned int) (rand_seed / 65536) % 32768;}void main () {int i t, x, y;/ *填充数组* / (i = 0;我< MAX;我+ +){[我]= rand ();printf (" % d \ n”,[我]); } /* bubble sort the array */ for (x=0; x < MAX-1; x++) for (y=0; y < MAX-x-1; y++) if (a[y] > a[y+1]) { t=a[y]; a[y]=a[y+1]; a[y+1]=t; } /* print sorted array */ printf("--------------------\n"); for (i=0; i < MAX; i++) printf("%d\n",a[i]); }
这段代码来填充数组用随机数字,他们使用冒泡排序,然后显示排序列表。
冒泡排序的代码,并使用上一篇文章中你学到了什么使一个函数。因为两个数组一个和全球已知常数最大,您创建的函数不需要参数,也不需要返回一个结果。18新利最新登入然而,您应该使用局部变量x, y,和t。
一旦测试函数来确保它是工作,通过数量的元素作为参数,而不是使用马克斯:
# include < stdio。10 h > # define马克斯int (MAX);int rand_seed = 10;/ *从k和r -返回0到32767之间的随机数。* / int rand () {rand_seed = rand_seed * 1103515245 + 12345;返回(unsigned int) (rand_seed / 65536) % 32768;}无效bubble_sort (int) {int x, y, t;为(x = 0;x < m - 1;x + +) (y = 0; y < m-x-1; y++) if (a[y] > a[y+1]) { t=a[y]; a[y]=a[y+1]; a[y+1]=t; } } void main() { int i,t,x,y; /* fill array */ for (i=0; i < MAX; i++) { a[i]=rand(); printf("%d\n",a[i]); } bubble_sort(MAX); /* print sorted array */ printf("--------------------\n"); for (i=0; i < MAX; i++) printf("%d\n",a[i]); }
你也可以概括的bubble_sort更通过传入的函数一个作为一个参数:
bubble_sort (int, int [])
这条线说:“接受任何大小的整数数组作为参数。”Nothing in the body of thebubble_sort功能需要改变。叫bubble_sort,改变调用:
bubble_sort (MAX);
请注意,和尚未使用的函数调用,即使会改变一个。这将成为明确的原因一旦你理解指针。