cyn.c 发表于 2022-3-15 20:50:42

t1定义的是不是错的

struct Test
      {
                int x;
                int y;
      };

      struct Test t1 = {3.0, 4.0};
      struct Test t2 = {3};
      struct Test t3 = {3, 4, 5};

大马强 发表于 2022-3-15 22:51:48

你自己动手输出一下不就知道了吗
#include <string.h>

struct Test
      {
                int x;
                int y;
      };
int main()
{
      

      struct Test t1 = {3.0, 4.0};
      struct Test t2 = {3};
      struct Test t3 = {3, 4, 5};
                printf("%d %d\n", t1.x, t1.y);
                printf("%d %d\n", t2.x, t2.y);
                printf("%d %d\n", t3.x, t3.y);
      return 0;
}

警告信息
17        16        C:\Users\14326\Desktop\鱼c.c        excess elements in struct initializer
17        16        C:\Users\14326\Desktop\鱼c.c        (near initialization for 't3')

输出
3 4
3 0
3 4


现在你会发现,t1没报错,t3反而警告了
参数和声明的不一致

她与晚风 发表于 2022-3-16 15:35:22

出鱼Cvip账号 QQ:3581843493

cyn.c 发表于 2022-3-16 18:32:33

大马强 发表于 2022-3-15 22:51
你自己动手输出一下不就知道了吗




因为我试了一下发现t1和t3都报错,但想着小甲鱼应该不会出个错题。可能是VC++6.0的事

大马强 发表于 2022-3-16 22:40:59

cyn.c 发表于 2022-3-16 18:32
因为我试了一下发现t1和t3都报错,但想着小甲鱼应该不会出个错题。可能是VC++6.0的事

也有可能,我用的是devc++
页: [1]
查看完整版本: t1定义的是不是错的