我正在尝试在C
中构建一个 CARDIAC计算机模拟器,现在我需要从一个函数中调用一个函数。
JAZ()
中调用函数CARDIAC()
,并且出现一个明显的错误,因为它不是预定义的,所以我无法调用它。
printf
“到达点了!”
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int input;
void CARDIAC(int* ptr)
{
int input = *ptr;
while(input<900)
{
if(input<100 && input>=0)
{
// INP();
}
else if(input<200 && input>99)
{
printf("Point reached!\n");
break;
}
else if(input<300 && input>199)
{
// LDA();
}
else if(input<400 && input>299)
{
// LDI();
}
else if(input<500 && input>399)
{
// STA();
}
else if(input<600 && input>499)
{
// STI();
}
else if(input<700 && input>599)
{
// ADD();
}
else if(input<800 && input>699)
{
// SUB();
}
else if(input<900 && input>799)
{
JAZ();
}
else
{
// HRS();
}
}
printf("Done\n");
}
void JAZ()
{
input = 180;
CARDIAC(&input);
}
int main()
{
input=820;
CARDIAC(&input);
return 0;
}
test.c: In function ‘CARDIAC’:
test.c:47:4: warning: implicit declaration of function ‘JAZ’ [-Wimplicit-function-declaration]
JAZ();
^~~
test.c: At top level:
test.c:57:6: warning: conflicting types for ‘JAZ’
void JAZ()
^~~
test.c:47:4: note: previous implicit declaration of ‘JAZ’ was here
JAZ();
^~~
答案 0 :(得分:1)
尝试将JAZ()
函数移到CARDIAC()
之前
答案 1 :(得分:1)
您必须将函数原型放在两个函数之前,
re.sub()
答案 2 :(得分:0)
我需要做什么才能使已编译的程序打印“到达点!”
您的函数中的Jaz输入= 280;因此不会打印出来,因为您在else if语句else if(input<200 && input>99)
中写入280> 200时。
void JAZ()
{
input = 280; //you must change this value
CARDIAC(&input);
}
另一个问题是循环不会结束。
我真的不知道您打算在该函数中使用while做什么,但是如果您想结束它,input
必须达到900或更高,才能停止在CARDIAC函数中声明的while循环。 while(input<900)
。
下面是打印“到达点”的代码:
#include <stdio.h>
#include <stdlib.h>
int input;
void JAZ();
void CARDIAC(int* ptr)
{
int input = *ptr;
//while(input<900)
//{
if(input<100 && input>=0)
{
// INP();
}
else if(input<200 && input>99)
{
printf("Point reached!\n");
// break;
}
else if(input<300 && input>199)
{
// LDA();
}
else if(input<400 && input>299)
{
// LDI();
}
else if(input<500 && input>399)
{
// STA();
}
else if(input<600 && input>499)
{
// STI();
}
else if(input<700 && input>599)
{
// ADD();
}
else if(input<800 && input>699)
{
// SUB();
}
else if(input<900 && input>799)
{
JAZ();
}
else
{
// HRS();
}
//}
//printf("Done\n");
}
void JAZ()
{
input = 180;
CARDIAC(&input);
}
int main()
{
input=820;
CARDIAC(&input);
return 0;
}