所以我试图在我的getOption函数中的if语句中调用我的OptionA函数,但是在第59行我得到一个错误"错误预期标识符或'('之前' {'"所以我想知道如何让我的代码在OptionA函数中打印出我的代码。谢谢!
#include <stdio.h>
#include <stdlib.h>
//function declaration
char getOption (void);
double OptionA;
int main(void)
{
//local declaration
getOption();
return 0;
}//main
char getOption (void)
{
//local declaration
char option;
//statements
printf("\nMain Menu\n");
printf(" A. Find the square root of a positive number.\n");
printf(" B. Find the inverse of a positive number.\n");
printf(" Q. Quit.\n\n");
printf("Enter choice:");
scanf(" %c", &option);
if ( option == 'a' || option == 'A')
{
OptionA;
}
else if ( option == 'b' || option == 'B')
{
printf("\nnice");
}
else if ( option == 'q' || option == 'Q')
{
exit(0);
}
else
{
printf("\nError. Invalid Selection.\n");
getOption();
}
return option;
}
double OptionA;
{
printf("\nHey, it works.");
}
答案 0 :(得分:1)
OptionA不是一个函数,它是一个双精度函数。
double OptionA;
要在c中声明一个函数,你应该使用() 替换:
// PROTOTYPE
double OptionA;
// this is a double, you'd say :
double OptionA();
// this is a function which returns a double;
然后在getOption()函数中:
if ( option == 'a' || option == 'A')
{
OptionA();
}
并在函数中:
double OptionA()
{
printf("\nHey, it works.");
}
希望有所帮助
答案 1 :(得分:0)
...调用我的OptionA函数......
OptionA
不是一个函数,就像你声明它,调用它并定义它一样。任何函数的正确语法是:
return_value FunctionName (argument_data_type argument1, etc...)
如果你不想将任何参数传递给你的函数,那么你可以在函数名后面有一对空括号,或者你可以在函数后面的括号内有关键字void
名称。 但是,括号是必需的,否则你的函数名称会在声明时由编译器混淆变量(double variable
是double类型的变量,double function
也是如此)。
解析错误时:
错误预期标识符或'('在'{'
之前
它告诉您在函数体和函数体的开括号之后需要括号对。
要修复此错误,您应该在代码中调用,声明或定义函数的所有点的函数名后面添加一对括号。从以下位置更改程序顶部的函数声明:
double OptionA;
要:
double OptionA(); // the pair of parenthesis is added here
或者:
double OptionA (void); // (void) is the same as () for this purpose.
同时将您的函数调用更改为:
if ( option == 'a' || option == 'A')
{
OptionA (); // pair of parenthesis added here too
}
在将其定义为:
时更改函数标题double OptionA() // pair of parenthesis added he right before the function name
{
printf("\nHey, it works.");
}