void类型参数在C/C++中的不同
来源:互联网 发布:sql报表开发 编辑:程序博客网 时间:2024/05/31 19:14
在C语言中,void类型是没有问题,代码如下:main.c
#include <stdio.h>#include <string.h>#define GENERICvoid *MyStrcpy( void *dst, const void GENERIC *src, unsigned int len ){unsigned char *pDst;const unsigned char GENERIC *pSrc;pSrc = src;pDst = dst;while ( len-- )*pDst++ = *pSrc++;return ( pDst );}void main(){int i=1;int j=2;char d[]="123";char s[]="123456789";char d1[]="123";char s1[]="123456789";strcpy(d,s);printf("s=%s d=%s\n",s,d);MyStrcpy(d1,s1,3);printf("d1=%s s1=%s\n",s1,d1); printf("i=0X%08X\nj=0X%08X\ns=0X%08X\nd=0X%08X\ns1=0X%08X\nd1=0X%08X\nstrcpy=0X%08X\nprintf=0X%08X\n",&i,&j,s,d,s1,d1,strcpy,printf);}而在C++中,我们要改成模板,代码如下:main.cpp
#include <stdio.h>#include <string.h>#define GENERICtemplate <typename T>void *MyStrcpy( T *dst, const T GENERIC *src, unsigned int len ){T *pDst;const T GENERIC *pSrc;pSrc = src;pDst = dst;while ( len-- )*pDst++ = *pSrc++;return ( pDst );}void main(){int i=0,j=1;char s[]="123456789";char d[]="123";char s1[]="123456789";char d1[]="123";strcpy(d,s);printf("s=%s d=%s\n",s,d);MyStrcpy(d1,s1,3);printf("d1=%s s1=%s\n",s1,d1); printf("i=0X%08X\nj=0X%08X\ns=0X%08X\nd=0X%08X\ns1=0X%08X\nd1=0X%08X\nstrcpy=0X%08X\nprintf=0X%08X\n",&i,&j,s,d,s1,d1,strcpy,printf);}
以上代码的功能是一样的,但是我们要进行不同的改变。上面是在VC++6.0编译环境下测试。
- void类型参数在C/C++中的不同
- void在C/C++中的两种不同含义
- C\C++中的void 类型
- 详解C语言中的VOID类型
- C/C++中的void类型探究
- 小议C语言中的void类型
- C语言中的void * 指针类型
- C/C++语言中的void及void指针类型
- C/C++语言中的void及void指针类型
- C/C++语言中的void及void指针类型
- C语言中的void 和void 指针类型
- C语言中的void 和void 指针类型
- C语言中的void 和void 指针类型
- [C++]void参数
- c/c++void及void指针类型
- C&C++(2) - void*在C和C++中的不同点
- C语言中的 void*
- C语言VOID类型大小
- Android学习(二) Eclipse使用
- 黑马程序员——Date.Calendar类的介绍及练习
- 标准linu休眠和唤醒机制分析(一)
- dede标签终极大法
- C#基础解析之Ⅲ 【循环结构】
- void类型参数在C/C++中的不同
- C++拷贝构造函数(深拷贝,浅拷贝)
- 文件操作函数复习
- hadoop mr类图大纲
- Windows平台下下载android源码
- Lua部分源代码分析(讨论lua的库是如何实现)
- SRAM与DRAM区别
- android交叉编译工具链接下载
- 在Meego上实现一个播放器——总体设计