-6

有人可以帮我用 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)。我得到了一些垃圾值。我还需要帮助打印这些指针。感谢您的支持。

4

2 回答 2

4

您需要了解union的用法语义。您只能读取存储在联合的特定对象实例中的类型。并且您只能在特定实例中及时将一种类型存储在联合中。
因此,要么您存储,s要么c,它不能两者兼而有之。如果您的意图是存储这两种类型,那么您需要的是结构而不是联合。

于 2013-04-22T15:04:24.593 回答
1

首先,您使用的是 union。内存在这 4 个数组之间共享。我不确定你想要那个。

其次,格式说明符列表在这里%s用于字符串。 %p用于指针,%ld可用于有符号长整数。

于 2013-04-22T15:06:37.747 回答