1 c
#include <stdio.h>
double IncomeTAX(double i)
{
double tax;
if(i <= 120000)
tax = 0;
else
tax = (i - 120000) * 15/100;
return tax;
}
int main(void)
{
double a, b;
printf ("Enter the annual income: ");
scanf ("%lf", &b);
a = IncomeTAX(b);
printf ("Income Tax is %.2lf\n", a);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试以这种方式运行程序时它可以工作,但是当我分离程序时,程序编译但是给出了垃圾值.但是,如果我将过程中的数据类型从"double"更改为"long",即使该过程是单独编译的,该程序仍然有效.
谁能告诉我这背后的原因是什么?
如果通过"单独的过程"来表示"将IncomeTAX()函数放在不同的源代码文件中",那么您可能在使用前未能声明它.把它放在之前main():
extern double IncomeTAX(double);
Run Code Online (Sandbox Code Playgroud)
通常这将存在于IncomeTAX.h头文件中.
你需要这个声明的原因是否则C将默认使用int; 这会导致问题,因为它的大小可能不同double.