编译器给出如下所示的错误。据我所知,常量以及我的函数调用都已正确声明。该程序计算三角形的面积和周长,并使用 5 个不同的函数。任何帮助将不胜感激。
program05.c:16:22: error: expected ‘;’, ‘,’ or ‘)’ before 'A'
#define SIDE_1_LABEL 'A'
^
program05.c:20:25: note: in expansion of macro ‘SIDE_1_LABEL’
float getUserValue(char SIDE_1_LABEL, char SIDE_2_LABEL);
^
program05.c: In function ‘main’:
…
#include <stdio.h>
#include <math.h>
#define SIDE_1_LABEL 'A'
#define SIDE_2_LABEL 'B'
void printInstructions();
float getUserValue(char SIDE_1_LABEL, char SIDE_2_LABEL);
float calculateArea(float side1, float side2);
float calculatePerimeter(float side1, float side2);
void printResults(float side1, float side2, float area, float perimeter);
int main()
{
…
你写道:
#define SIDE_1_LABEL 'A'
#define SIDE_2_LABEL 'B'
float getUserValue(char SIDE_1_LABEL, char SIDE_2_LABEL);
这与写作完全一样:
float getUserValue(char 'A', char 'B');
这显然是无效的,因为 'A' 和 'B' 不是变量名。
如果您不知道 - 宏扩展的工作方式就好像您在宏出现的任何地方复制粘贴宏定义一样。
我是一名优秀的程序员,十分优秀!