#include"stdafx.h"
#define PI 3.14
double areal(double r);
int main()
{
double r, s;
printf("input radius:");
scanf_s("%lf", &r);
s = areal(r);
printf("s=%lf", s);
}
double areal(double r)
{
return PI*r*r;
}
两个问题 一是r这是定义了好几次吗 看
二是之前我用的scanf一直提示不安全让换成scanf_s,这两个有区别吗
求大佬解释
没有,因为是两个不同的函数,其中的r是完全不相干的。
对初学者来说,vs2010或者以后版本的scanf_s和vc++ 6.0的scanf是没有什么区别的。
//r没有定义多次,只是调用时要用相同数据类型接收,主函数中r在编译之后运行之前在栈区分配内存,而被调用的函数在代码段;
//
#include"stdafx.h"
#define PI 3.14
double areal(double r);//函数的声明
int main()
{
double r, s;
printf("input radius:");
scanf_s("%lf", &r);
s = areal(r);//函数的调用
printf("s=%lf", s);
}
double areal(double r)//函数的定义
{
return PI*r*r;
}