c语言中如何将多个整型变量值用一个整型变量来存储?

如下:
unsigned int year = 2014;
unsigned int mon = 9;
unsigned int day = 4;
unsigned int hour = 11;
unsigned int min = 1;
unsigned int sec = 20;

将上面每个值整合到一个变量里。如int sum中。
附:
存储到sum中后,如何从sum中提取出来每个变量的值。

多谢!

提供一个思路供参考,共同体、位运算都可以实现,但是这个方法的话,数据不能太大,毕竟long int也就4个字节。
#include "stdio.h"
void main()
{
typedef union t{
char n[4];
long int sum; //sum是4个字节,跟n[4]占用同一个存储空间,改变n的值也是改变sum的值
}UT;
UT tt;
tt.n[0]=2014;
tt.n[1]=9;
tt.n[2]=4;
tt.n[3]=11;
printf("%ld\n",tt.sum);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-06
用结构体,typedef struct TIME{ unsigned int year;
unsigned int mon ;
unsigned int day ;
unsigned int hour;
unsigned int min;
unsigned int sec} TIME_TYPEDEF;
再定义
TIME_TYPEDEF sum;
sum.year = 2014;
sun.mon = 9;
省略......追问

通过移位呢?或者把int改成long long int呢?

追答

通过移位也可以,不过你要看有没有超过大小,如果是上面5个数,sec最大60 = 111011b,占了7位,分也占7位,时和日分别占5位,月占4位,7+7+5+5+4 = 28不同机器unsigned int的大小不一样,如果一般32位的,还只有6位给给年了

本回答被提问者采纳
第2个回答  2014-09-04
int sum[]数组是可能,一个是不可能滴