C++的宏定义问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 20:29:52
设文件a2.h的内容为:
#define aa1 6
float area;
设文件a1.h的内容为:
#include "a2.h"
#define a1 aa1*16
源程序文件a.cpp的内容为:
#include <iostream.h>
#include "a1.h"
#include "a2.h"
#define PI 3.1415926
#define R 2.8
void main()
{area=PI*R*R;
cout<<"圆面积"<<area;
cout<<"长方形面积"<<a1;}
为什么是错的说是同一变量重复定义,请问哪个变量重复定义了

float area; 这个变量定义重复了

不要在头文件中定义变量

area 重复定义

a.cpp中
#include "a1.h"
#include "a2.h"

而a1.h中
#include "a2.h"

所有两次包含了 a2.h
area 重复定义

#include "a1.h"
#include "a2.h"
这两句使 area 被重复定义了

#include "a1.h"
#include "a2.h"
问题出在这
只写#include "a1.h" 就行了
头文件a1.h中包含了a2.h