C语言中 如何让函数返回不同类型的值

fredkang 2007-08-25 11:11:24
如题:欲设计一函数既能返回实型也能返回整型,请问该如何定义函数 又该如何使用
可不可以想malloc一样 使用时候再强制转换成需要的类型
比如:
函数()
{
用户输入一串字符;
判断如果是全是数字并且没有小数点则返回整型的值
如果全是数字有小数点则返回实型的值
。。。。。
}
可以实现么 如果可以请问如何实现
...全文
1159 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞哥 2007-08-26
  • 打赏
  • 举报
回复
直接写个函数
参数返回不就行了
losky 2007-08-26
  • 打赏
  • 举报
回复
c++模板可以
bayuan0414 2007-08-26
  • 打赏
  • 举报
回复
c标准库函数里面有函数可以实现字符串转换成int float long
atoi atof atol...
你可以现判断 然后用上述函数转换。
wsy6634 2007-08-26
  • 打赏
  • 举报
回复
如果的意思是要返回一个以上的数,那是行不通的,但你可以用if语句加上cout或printf等来实现。
littlebad_boy 2007-08-26
  • 打赏
  • 举报
回复
不就是这样吗。

#include "stdafx.h"
#include <stdio.h>

double myfun()
{
int a=1;
return (double)a;
}

int main(int argc, char* argv[])
{
int a = (int)myfun();
double b = myfun();
printf("%d\n",a);

getchar();
return 0;
}
littlebad_boy 2007-08-26
  • 打赏
  • 举报
回复
C++里面有个模板函数

template <class X>

X fun()
{
retrun X;
}

你在下面调用的时候,加上自己类型转换就可以了。标准c里面是不是能用就不知道了。
还有一个比较笨的方法,就是定义一个结构体,返回结构体就行。

不用模板,我想搂主想实现的用同名函数返回不同类型的值是不可能的。要不然还要函数重载和函数参数干吗?
buyong 2007-08-26
  • 打赏
  • 举报
回复
写两个同名的函数吧。输入参数和返回值有区别就行。
Oversense 2007-08-25
  • 打赏
  • 举报
回复
operator() 可以实现你的需求
linfengc 2007-08-25
  • 打赏
  • 举报
回复
函数声明,定义,函数体外面都要写好返回值啊。一定得是固定的
无话可言 2007-08-25
  • 打赏
  • 举报
回复
是不可以的,一个函数只能有一个返回值,照你的情况,在C中你可以使用全局变量来返回值。

定义两个全局变量 int pp; float qq;
函数()
{
用户输入一串字符;
判断如果是全是数字并且没有小数点则 pp=....
如果全是数字有小数点则返回实型的值 qq=.....
。。。。。
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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