变量要提前定义才能接收,那要如何才能接收不同数据类型并判断以下内容啊?

关注【以下回答由 GPT 生成】
### C语言如何接收不同数据类型并进行判断?
要实现接收不同数据类型并进行相应的判断,可以使用C语言中的联合(union)或结构体(struct)来实现。
#### 方法一:使用联合(union)
```c
#include <stdio.h>
typedef union {
int integer;
float floating;
char string[20];
} Data;
void processData(Data data) {
// 进行数据类型的判断和处理
// 例如
if (data.integer != 0) {
printf("This is an integer: %d\n", data.integer);
} else if (data.floating != 0.0) {
printf("This is a float: %f\n", data.floating);
} else {
printf("This is a string: %s\n", data.string);
}
}
int main() {
Data data;
data.integer = 10;
processData(data);
data.floating = 3.14;
processData(data);
strcpy(data.string, "Hello, world!");
processData(data);
return 0;
}
#include <stdio.h>
typedef struct {
int type; // 1 for integer, 2 for float, 3 for string
union {
int integer;
float floating;
char string[20];
} data;
} Data;
void processData(Data data) {
switch (data.type) {
case 1:
printf("This is an integer: %d\n", data.data.integer);
break;
case 2:
printf("This is a float: %f\n", data.data.floating);
break;
case 3:
printf("This is a string: %s\n", data.data.string);
break;
default:
printf("Unknown data type\n");
}
}
int main() {
Data data1 = {1, .data.integer=10};
processData(data1);
Data data2 = {2, .data.floating=3.14f};
processData(data2);
Data data3 = {3, .data.string="Hello, world!"};
processData(data3);
return 0;
}
```
【相关推荐】