我写了一个简单的测试程序并尝试使用它:
```
我正在使用这段代码进行浮点运算测试。
我写了一个简单的测试程序并尝试使用它:
```union FLT { ... };
struct FLT { ... };
但编译器报错了关于命名冲突的问题。
因为在C语言中,你需要在标签名称前使用struct
和union
,那么它们为什么会发生冲突呢?
我的意思是,当我们想要声明一个类型为struct FLT
、名称为num
的变量时,我们会使用
struct FLT num;
如果我们想要使用一个名为diffnum
,类型为union FLT
的变量,我们需要使用以下语法:
union FLT diffnum;
那么为什么编译器不能区分它们呢?
顺便说一下,我测试了MinGW和VC,如果你需要知道的话。
更新
union FLOAT {
float value;
unsigned int bits;
unsigned char bytes[4];
};
struct FLOAT {
unsigned int sign;
unsigned int exponent;
unsigned int significand;
};
union FLOAT num;
struct FLOAT num_parts;
我正在使用这段代码进行浮点运算测试。