微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 指数指针的相关知识

指数指针的相关知识

时间:08-14 来源:ZLG致远电子 点击:

标准库中预定义的类型,专门用于保存变量的大校stSize为变量的长度,pData1、pData2分别为是要比较的第1、2个参数。当返回值< 0时,表示pData1 < pData2;当返回值= 0时,表示pData1 = pData2;当返回值> 0时,表示pData1 > pDta2。

 

在这里,任何类型的指针都可以传入byte_swap()中,真实地体现了内存操作函数的意义,无论这块内存是什么数据类型,它操作的对象仅仅是一块内存。无论用户传进来的是什么类型,从C99版本后,将void *类型指针赋值给其它类型指针时,不再需要强制类型转换。即循环一次交换一个字节,那么对于int类型数据来说,仅需循环4次就可以了。其前提是两个变量的类型必须相同,比如,交换a、b两个变量的值,其使用方法如下:

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

 

byte_swap()数据交换函数的接口与实现详见程序清单 1.42和程序清单 1.43。

 

程序清单 1.42 swap数据交换函数接口(swap.h)

1     #pragma once

2     void byte_swap(void *pData1, void *pData2, size_t stSize);

 

程序清单 1.43 swap数据交换函数接口的实现(swap.c)

1     void byte_swap(void *pData1, void *pData2, size_t stSize) 

2     {

3            unsigned char *pcData1 = pData1;

4            unsigned char *pcData2 = pData2;

5            unsigned char ucTemp;

6

7            while (stSize--){

8                   ucTemp = *pcData1;  *pcData1 = *pcData2;  *pcData2 = ucTemp;

9                   pcData1++;  pcData2++;

10          }

11   }

 

针对特定的字符串,指针数组的应用示例详见程序清单 1.44。

 

程序清单 1.44  比较字符串大小然后输出范例程序

1     #include

2    #include

3     #include "swap.h" 

4

5     const char * keyWord[5] = {"eagle", "cat", "and", "dog", "ball"};

6     void show_str (void)                                                 // 打印keyWord数据 

7     {

8            for (int i = 0; i < sizeof(keyWord) / sizeof(keyWord[0]); i ++){

9                   printf("%s", keyWord[i]); 

10          }

11          printf("\n");

12   } 

13

14   int main(int argc, char *argv[])

15   {

16          show_str(); 

17

18          if(strcmp(keyWord[0], keyWord[1]) < 0)

19                 byte_swap(keyWord, keyWord +1, sizeof(keyWord[0]));

20          show_str(); 

21          return 0; 

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

网站地图

Top