有人可以帮我打印C中的以下数据,确切的格式说明和打印程序。
union
{
char c[8];
short s[4];
long l[2];
void * vfp[2];
} info;
当我尝试使用printf(“%s \ n”,info.c)时;和printf(“%s \ n”,info.s)。我有一些垃圾值。 我也需要帮助打印这些指针。 感谢您的支持。
答案 0 :(得分:4)
您需要了解 union 的使用语义。您只能读取存储在union的特定对象实例中的类型。并且您只能在特定实例的时间内将一种类型存储在一个联合中
因此,无论您存储了s
还是c
,它都不能同时存储。如果您打算存储两种类型,那么您需要的是结构而不是联合。
答案 1 :(得分:1)
首先,你是using a union。内存在这4个阵列之间共享。我不确定你想要那个。
其次,format specifiers is here列表。 %s
用于字符串。 %p
用于指针,%ld
可用于签名长。