十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
注意两个【规则】:
创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为桥西企业提供专业的做网站、成都网站制作,桥西网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
一、不要省略返回值的类型。如果函数没有返回值,应生明为void类型。
二、函数名字与返回值类型在语义上不可冲突。
eg:char c;
c=getchar();
if(c==EOF)
..................
此处getchar()是一个函数,它的返回值类型却不是char,而是int类型。起函数原型是:
int getchar(void);由于c是char类型,取值范围是【-128,,127】,万一宏EOF的值在char的 取值范围之外,那么if语句将总是失败。
【建议】
不要将正常值和错误标志混在一起返回。建议正常值用输出参数获得,而错误标志用return语句返回。
两个【提示】:
一、有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。
例如字符串拷贝函数strcpy的原型:char *strcpy(char *strDest,const *strSrc);
strcpy 函数将strSrc拷贝至输出参数strDest中,同时函数的返回值又是strDest。这样做并非多此一举。这样做并非多此一举,可以获得如下灵活性:
char str[20];
int length = strlen(strcpy(str,"hello world"));
但是注意不要将返回指针的函数作为左值,例如:
double* func(double* p)
{
return p;
}
double d = 100;
*func(d)=200;
二、如果函数的返回值是一个对象,有些场合用“返回引用”替换“返回对象值”,这样可以提高效率,而且还可以支持链式表达。而有些场合只能用“返回对象值”而不能用“返回引用”,否则会出错。
楼主顺便给你推荐两本书:高质量c/c++编程和c语言深度剖析。
函数的返回值通过return语句来执行,即return后的变量或表达式的值,就为该函数的返回值(你可以根据需要自定义返回什么值),而返回值的类型是指该值你想要得到的类型,比如return
a;(a的类型,你在函数体里定义的是int
a;但根据需要,你要的是一个float型的返回值),于是,这样定义一个函数:
float
函数名(参数列表)
{
int
a;
函数体;
……
return
a;
}
这样,返回值a就变成了float型。
一般情况,函数的返回值 就是 函数值。例如 sqrt(16.0).
但 C语言 有时 返回 指针,而指针也许指向 单一值,也许指向 数组,结构等,那就不是 函数值。