c语言实现不同类型数组的print(union + flag)
来源:互联网 发布:国联证券软件下载 编辑:程序博客网 时间:2024/06/04 00:29
#include <stdio.h>#include <stdlib.h>#include <string.h>union ArrayType {int *d;double *lf;char *c;};enum DATATYPE {CHAR= 'c',DOUBLE= 'l',INT = 'd'};struct ArrayType2 {enum DATATYPE flag;union {int *d;double *lf;char *c;};};void printArray(struct ArrayType2 array,int n){int i;int sizea = n;int flag = array.flag;switch(flag) {case 'd':for (i = 0; i < sizea; ++i) { printf("%d%c", array.d[i], i == sizea-1 ? '\n':'\t');}break;case 'l':for (i = 0; i < sizea; ++i) { printf("%lf%c", array.lf[i], i == sizea-1 ? '\n':'\t');}break;case 'c':for (i = 0; i < sizea; ++i) { printf("%c%c", array.c[i], i == sizea-1 ? '\n':'\t');}break;default:printf("invalid data type input");exit(-1);break;}}void printArray2(void *val, int n, char flag){ int i; int sizea = n + 1;union ArrayType a;switch(flag) {case 'd':a.d = (int *)val;for (i = 0; i < sizea; ++i) { printf("%d%c", a.d[i], i == sizea-1 ? '\n':'\t');}break;case 'a':a.lf = (double *)val;for (i = 0; i < sizea; ++i) { printf("%lf%c", a.lf[i], i == sizea-1 ? '\n':'\t');}break;case 'c':a.c = (char *)val;for (i = 0; i < sizea; ++i) { printf("%c%c", a.c[i], i == sizea-1 ? '\n':'\t');}break;default:break;}}int main(){struct ArrayType2 type_int;struct ArrayType2 type_double;int a[] = {1, 3, 5, 6};double d[] = {3.5, 3.22, 54.4};type_int.flag = INT;type_int.d = a;printArray(type_int, sizeof(a)/sizeof(int));type_double.flag = DOUBLE; type_double.lf = d;printArray(type_double, sizeof(d)/sizeof(double));return 0;}
0 0
- c语言实现不同类型数组的print(union + flag)
- c语言重载不同类型数组的print(c99标准)
- c语言不同类型返回数组长度用法
- Union-Find C语言实现
- c/c++语言的union
- C语言union的用法
- C语言Union的使用
- 数组的实现---C语言
- C语言中的flag
- C语言实现的简单的print函数,只支持%c和%d。
- 【C语言】测试不同类型的指针的算术运算
- 不同类型变量与零值的比较 【C语言规范】
- c语言 输出不同类型所占的字节数
- C语言-不同类型数据间的混合运算
- 关于c语言不同类型变量存放位置的个人理解
- C语言中不同类型数据之间的赋值
- [Union]C语言编程中联合Union的学习
- C语言联合体(union)的使用方法及其本质-union
- 谁是赌神
- JavaScript表单验证和提交(结合正则表达式)
- 朵拉影像开发日记 12.07
- 瑞芯微RK3188 内核心跳灯
- 【学习ios之路:C语言】If循环的应用的练习
- c语言实现不同类型数组的print(union + flag)
- UIActivityIndicatorView的详细使用
- 用字符串实现大数相乘
- 搭班子 定战略 带队伍---联想柳传志管理三要素
- 一些正则表达式替换的实例
- 拿来主义:觉得不错和大家分享-----实训数据库开发应用——SQL查询
- CryENGINE3初探Entities (一)----使用Lua创建一个自定义Entity并为其添加节点
- 【算法设计与分析】5、最长公共子序列
- 【算法设计与分析】6、最大字段和