在“区域”内
#include <math.h>
extern double peri;
extern double area;
#define AREA_C(x) (x*x* M_PI)
#define PERI_C(x) (x*2*M_PI)
#define PERI(length, depth, polygone){\
if((polygone == "square")||(polygone == "rectangle"))\
peri = length * 2 + depth * 2;\
}
#define AREA(a,b,polygone){\
if((polygone == "square")||(polygone == "rectangle"))\
area = a * b;\
else if(polygone == "triangle")\
area = a * b / 2;\
}在“区域”内
#include "areaperi.h"
#include <stdio.h>
int main(){
double Carea = AREA_C(3);
double Cperi = PERI_C(3);
printf("area: %.2lf\n", Carea);
printf("peri: %.2lf\n", Cperi);
AREA(2,2,"square");
printf("%.2lf\n", area);
return 0;
}嗨,试着玩宏和存储类。但我面临一个错误。这段代码不是为了提高效率,它只是一个练习。
误差
areaperi.h:14:28:警告:反斜杠-文件末尾的换行符#定义区域(a,b,polygone){\
C:\Users\elena\AppData\Local\Temp\ccyOjbOH.o:areaperi.c:(.text+0x52):未定义的对area' C:\Users\elena\AppData\Local\Temp\ccyOjbOH.o:areaperi.c:(.text+0x58): undefined reference to区域的收藏品2.exe的引用:错误: ld返回1退出状态
发布于 2021-08-29 13:07:47
头文件
#include <math.h>
extern double peri;
extern double area;
#define AREA_C(x) (x*x* M_PI)
#define PERI_C(x) (x*2*M_PI)
#define PERI(length, depth, polygone){\
if((polygone == "square")||(polygone == "rectangle"))\
peri = length * 2 + depth * 2;\
}
#define AREA(a,b,poly){\
if((poly == "square")||(poly == "rectangle"))\
area = a * b;\
else if(poly == "triangle")\
area = a * b / 2;\
puts("");\
}file.c
#include "areaperi.h"
#include <stdio.h>
double area;
double peri;
int main(){
double Carea = AREA_C(3);
double Cperi = PERI_C(3);
printf("area: %.2lf\n", Carea);
printf("peri: %.2lf\n", Cperi);
AREA(2,2,"square");
printf("Area of the square: %.2lf\n", area);
return 0;
}误差
在定义了变量之后,消除了主要错误,但是仍然存在
"24: warning: backslash-newline at end of file",使用该变量,我只添加了puts("");并修复了它。
如果想了解更多关于该错误的信息,我可以在以下网站找到答案:this stock overflow page
https://stackoverflow.com/questions/68972849
复制相似问题