微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 深入理解void类型

深入理解void类型

时间:11-27 来源:互联网 点击:

回类型,则表示不返回任何值。如果void位于参数列表中,则表示没有参数。

4. 用无类型指针作为函数参数

由于C语言中最小长度的变量为char类型(包括unsigned char、signed char等),其sizeof(char)的结果为1,而其它任何变量的长度都是它的整数倍。比如,如果使用SDCC51编译器,其sizeof(int)为2。因为通用swap函数函数不知道需要交换的变量的类型,所以需要一个参数给出相应的指示。由于C语言的变量类型多种多样,因此不可能为每一种变量类型编号,而且swap并不关心变量的真正类型,所以可以用变量的长度代替变量类型。通用swap函数的原型为:

void swap(void *pvData1, void *pvData2, int iDataSize)

将a,b两个变量(变量类型必须一样)的值交换的代码如下:

swap(&a, &b, sizeof(a));

通用swap排序函数的参考代码见程序清单1.1。

程序清单1.1通用swap排序函数

1void swap (void *pvData1, void *pvData2, int iDataSize)

2{

3unsigned char *pcData1 = NULL;

4unsigned char *pcData2 = NULL;

5unsigned charucTmp1;

6

7pcData1 = (unsigned char *)pvData1;

8pcData2 = (unsigned char *)pvData2;

9

10do {

11ucTmp1 = *pcData1;

12*pcData1= *pcData2;

13*pcData2= ucTmp1;

14pcData1++;

15pcData2++;

16} while (--iDataSize > 0);

17}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top