最近在读<linux c一站式学习>这本书, 其中主要有自己的以前没有掌握好的就写道博客里跟大家分享了.
函数的返回值应该这样理解:函数返回一个值相当于定义一个和返回值类型相同的临时变量并用return后面的表达式来初始化
首先提纲挈领的说一下要点:
1. 函数返回一个值相当于定义一个和返回值类型相同的临时变量并用return后面的表达式来初始化, 注意return只是传值操作。
2. 当检查到一个错误时提前结束当前函数的执行并返回。
下面通过一个可以运行的例子来说:
#include <stdio.h>
/*
int is_even(int x)
{
if(x%2 == 0)
return 1;
else
return 0;
}
*/
//这两个is_even函数的功能是一样的,只是下面这位更简洁
int is_even(int x)
{
return !(x%2);
}
void print_logarithm(double x)
{
if(x <= 0.0)
{
printf("Positive numbers only, please.\n");
//在没有返回值的函数中也可以使用return语句,例如当检查到一个错误时提前结束当前函数的执行并返回
return;
}
printf("your input is %f\n", x);
}
int main()
{
/********************** Part I *********************/
float d;
printf("Please input a number: ");
scanf("%f",&d);
print_logarithm(d);
/********************** End ********************/
if(is_even(d))
printf("Even!\n");
else
printf("Odd!\n");
return 0;
}
在这个函数里面有个需要注意的地方是我定义的float d传值到print_logarithm中的double是可以的,float 是4字节,double 是8字节这样不会存在精度丢失。