带有存根程序的C程序

时间:2014-07-01 01:01:12

标签: c c-preprocessor stub

问题是:

  

使用存根程序代码创建 C 程序来计算税金?

void calculatetaxes (float gross, float deferred, float *fedtax,float *statetax,float *ssitax) ; //3.5 

float calcfedtax(float gross, float deferred); //3.5.1 
float calcstatetax (float fedtax) ; // 3.5.2 
float calcssitax (float gross, float deferred); //3.5.3

// stub program code
#include <stdio.h>
#define ADDR(var) &var

int main (void)
{
    float ft,st,ssit;

    calculatetaxes (1000, 100,ADDR(ft),ADDR(st),ADDR(ssit));

    printf(" fedtax = %8.2f\n",ft);
    printf(" StateTax = %8.2f\n",st); 
    printf(" ssitax = %8.2f\n",ssit);
    fflush(stdin); 
    getchar();
    return 0;
}

我正在尝试编写一个代码来计算 C 的fedtax,statetax和ssitax,并且想知道为什么我的存根程序的空白不起作用而且#define addr(var) $var没有不定义我的变量。

1 个答案:

答案 0 :(得分:0)

void calculatetaxes (float gross, float deferred, float *fedtax,float *statetax,float *ssitax) ; //3.5 
float calcfedtax(float gross, float deferred); //3.5.1 
float calcstatetax (float fedtax) ; // 3.5.2 
float calcssitax (float gross, float deferred); //3.5.3

只是声明。它们不是实现。要提供存根实现,您需要实现它们,但不要在其中执行任何操作。

void calculatetaxes (float gross, float deferred, float *fedtax,float *statetax,float *ssitax)
{
   // Implement this function but leave the others that do the main
   // calculations as stub implementations.
   *fedtax = calcfedtax(gross, deferred);
   *statetax = calcstatetax(*fedtax);
   *ssitax = calcssitax(gross, deferred);
}

float calcfedtax(float gross, float deferred)
{
   return 0.0f;
}

float calcstatetax (float fedtax)
{
   return 0.0f;
}

float calcssitax (float gross, float deferred)
{
   return 0.0f;
}