Help Me!!!
我是读自考的,在我们的教材上有这样一段话:
"关于共用型,C语言还有一个重要的规定,共用型数据不能作为函数的参数在函数间传递,也不可以定义某函数返回共用型数据值.但是,允许使用指向共用型数据的指针变量在函数间传递共用型数据"这是书上的一段原话,但我针对上机时却发现并不是如此.
例如:以下程序在Dev-c++中完全可以通过编译并运行得到正确结果,而在tc2.0中只会有一条警告,执行后的结果也正确,不知道为什么?
#include "stdio.h"
union oYc
{
char a;
float c;
};
union oYc input_1(union oYc pu)
{
scanf("\n%c", &pu.a);
return pu;
}
union oYc *input_3(union oYc *pu)
{
scanf("%f", &(pu -> c));
return(pu);
}
void output_1(union oYc pu)
{
printf("uoYc.a = %c\n", pu.a);
}
void output_3(union oYc *pu)
{
printf("uoYc.c = %f\n", (*pu).c);
}
main()
{
union oYc uoYc, *puu;
uoYc = input_1(uoYc);
output_1(uoYc);
puu = input_3(&uoYc);
output_3(puu);
system("pause");
}