c++ 预编译问题 关于头文件
来源:百度知道 编辑:UC知道 时间:2024/06/27 18:51:26
下面代码为测试用,vs2008
//#ifndef ElemType
//#define ElemType
struct ElemType{
int number; //物品编号
int weight;
};
//#endif
int main(){
ElemType a;
}
注释运行正常
去掉//,编译器:
1.无标记的“struct”未声明符号
2.“a”: 未声明的标识符
晕,哪看不懂啦?
注释号知道吧。//
预编译指令没有被注释起来的时候,就是起作用的时候,代码有问题。
//#ifndef ElemType
//#define ElemType
struct ElemType{
int number; //物品编号
int weight;
};
//#endif
int main(){
ElemType a;
}
注释运行正常
去掉//,编译器:
1.无标记的“struct”未声明符号
2.“a”: 未声明的标识符
晕,哪看不懂啦?
注释号知道吧。//
预编译指令没有被注释起来的时候,就是起作用的时候,代码有问题。
预编译不能这么写吧?你想达到的目的是不让ElemType不重复定义?
这样试试
#ifndef HEADER_ELEM_TYPE_H
#define HEADER_ELEM_TYPE_H
struct ElemType{
int number; //物品编号
int weight;
};
#endif
int main(){
ElemType a;
}
用这个宏HEADER_ELEM_TYPE_H来判断当前文件是否被包含
如果你用vs2008的话应该可以用另外一个宏指令达到你上面的目的
#pragma once
struct ElemType{
int number; //物品编号
int weight;
};
这样多简单
我看不懂啊