玩宏
playing with Macros
内部“areaperi.h”
#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;\
}
内部“areaperi.c”
#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;
}
嗨,正在尝试使用宏和存储 class。但是我遇到了一个错误。这段代码并不意味着高效,它只是一个练习
错误
areaperi.h:14:28: 警告:反斜杠换行符在文件末尾
#define AREA(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
区域的引用'
collect2.exe:错误:ld 返回了 1 个退出状态
头文件
#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;
}
错误
after having DEFINED the variable I got rid of the main error, but there was still the "24: warning: backslash-newline at end of file"
, with that one I just added puts("");
and fix it.
如果想了解有关该错误的更多信息,我会在以下位置找到答案:this stock overflow page
内部“areaperi.h”
#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;\
}
内部“areaperi.c”
#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;
}
嗨,正在尝试使用宏和存储 class。但是我遇到了一个错误。这段代码并不意味着高效,它只是一个练习
错误
areaperi.h:14:28: 警告:反斜杠换行符在文件末尾 #define AREA(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
区域的引用'
collect2.exe:错误:ld 返回了 1 个退出状态
头文件
#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;
}
错误
after having DEFINED the variable I got rid of the main error, but there was still the
"24: warning: backslash-newline at end of file"
, with that one I just addedputs("");
and fix it.
如果想了解有关该错误的更多信息,我会在以下位置找到答案:this stock overflow page