Help Me!!!

oycnight 2003-09-13 10:56:19
我是读自考的,在我们的教材上有这样一段话:
"关于共用型,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");
}

...全文
42 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧