交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。
月下独酌 11:21:57
问个问题 “已经在.obj中定义”是什么问题?
月下独酌 11:22:23
我已经写了:宏#define MCResThird
#ifndef MCResScnd
#include"MCResScnd.cpp"
#endif
11:23:11
您的好友不在线或隐身,因此您不能发送窗口抖动。
王风 11:23:50
尽量不要include源文件
月下独酌 11:24:26
这样行吗?
王风 11:24:28
如果要用别的文件的全局函数可以包含它的头文件,如果用到其他文件里的全局变量,用extern
月下独酌 11:24:51
奥,对
王风 11:25:07
王风 11:25:19
而且这种define是在你要包含的文件里做的
王风 11:25:29
是为了防止二次包含
月下独酌 11:26:13
举个例子
王风 11:27:08
比如。
王风 11:28:10
有个头文件1.h
在1.h里边写上
#ifndef MAC_1_H
#define MAC_1_H
#endif
王风 11:28:48
然后包含的时候写
#ifndef MAC_1_H
#include "1.h"
#endif
月下独酌 11:29:33
奥,
王风 11:30:33
有时候包含头文件还能形成递归呢
王风 11:30:43
不控制的话
王风 11:30:49
老恐怖了。
月下独酌 11:30:53
是啊
月下独酌 11:31:54
b.cpp中包含了a.h,在单独编译此文件的时候,会检查a.cpp中的错误吗
月下独酌 11:32:49
一个工程中各个cpp文件是不是单独编译的,然后一块连接构件
王风 11:33:54
这个就不清楚了
王风 11:33:59
编译器进行了很多优化
月下独酌 11:34:43
奥
王风 11:34:48
各个头文件和对应的源文件应该都是独立的
王风 11:35:03
除了各文件里的全局变量
王风 11:35:25
所以检查每个源文件+头文件的错误基本就够了
王风 11:35:48
extern也是告诉编译器:我创建了这个全局变量,不过在其他文件里,你找去把。
王风 11:36:36
编译器维护了这样一个表格,存放编译过的一些变量名,类型名,函数名什么的。
月下独酌 11:36:41
只要用extern声明一下,定义在其他文件了 ,是吧
王风 11:36:51
嗯。
月下独酌 11:40:05
我举个例子你看看:
月下独酌 11:42:02
文件:fun.h/fun.cpp/step1.cpp/step2.cpp/main.cpp
其中step1 step2中都需要调用fun.而main由step1 step2完成
王风 11:43:09
最好不要包含cpp文件。
月下独酌 11:43:17
奥
月下独酌 11:43:45
那就写个step1.h step2.h在main中包含?
王风 11:43:56
可以
王风 11:44:26
如果包含cpp文件,就算不出错,也会使结构混乱
月下独酌 11:44:32
好的,谢谢了
月下独酌 11:44:37
吃饭去
月下独酌 11:21:57
问个问题 “已经在.obj中定义”是什么问题?
月下独酌 11:22:23
我已经写了:宏#define MCResThird
#ifndef MCResScnd
#include"MCResScnd.cpp"
#endif
11:23:11
您的好友不在线或隐身,因此您不能发送窗口抖动。
王风 11:23:50
尽量不要include源文件
月下独酌 11:24:26
这样行吗?
王风 11:24:28
如果要用别的文件的全局函数可以包含它的头文件,如果用到其他文件里的全局变量,用extern
月下独酌 11:24:51
奥,对
王风 11:25:07
王风 11:25:19
而且这种define是在你要包含的文件里做的
王风 11:25:29
是为了防止二次包含
月下独酌 11:26:13
举个例子
王风 11:27:08
比如。
王风 11:28:10
有个头文件1.h
在1.h里边写上
#ifndef MAC_1_H
#define MAC_1_H
#endif
王风 11:28:48
然后包含的时候写
#ifndef MAC_1_H
#include "1.h"
#endif
月下独酌 11:29:33
奥,
王风 11:30:33
有时候包含头文件还能形成递归呢
王风 11:30:43
不控制的话
王风 11:30:49
老恐怖了。
月下独酌 11:30:53
是啊
月下独酌 11:31:54
b.cpp中包含了a.h,在单独编译此文件的时候,会检查a.cpp中的错误吗
月下独酌 11:32:49
一个工程中各个cpp文件是不是单独编译的,然后一块连接构件
王风 11:33:54
这个就不清楚了
王风 11:33:59
编译器进行了很多优化
月下独酌 11:34:43
奥
王风 11:34:48
各个头文件和对应的源文件应该都是独立的
王风 11:35:03
除了各文件里的全局变量
王风 11:35:25
所以检查每个源文件+头文件的错误基本就够了
王风 11:35:48
extern也是告诉编译器:我创建了这个全局变量,不过在其他文件里,你找去把。
王风 11:36:36
编译器维护了这样一个表格,存放编译过的一些变量名,类型名,函数名什么的。
月下独酌 11:36:41
只要用extern声明一下,定义在其他文件了 ,是吧
王风 11:36:51
嗯。
月下独酌 11:40:05
我举个例子你看看:
月下独酌 11:42:02
文件:fun.h/fun.cpp/step1.cpp/step2.cpp/main.cpp
其中step1 step2中都需要调用fun.而main由step1 step2完成
王风 11:43:09
最好不要包含cpp文件。
月下独酌 11:43:17
奥
月下独酌 11:43:45
那就写个step1.h step2.h在main中包含?
王风 11:43:56
可以
王风 11:44:26
如果包含cpp文件,就算不出错,也会使结构混乱
月下独酌 11:44:32
好的,谢谢了
月下独酌 11:44:37
吃饭去