一个奇怪的问题,应该和gcc编译器有关!
下面是一个我正在看的开源项目的.h文件
#ifndef __ZLOPTIONS_H__
#define __ZLOPTIONS_H__
#include <string>
class ZLOption {
public:
static void clearGroup(const std::string &group) OPTIONS_SECTION;
public:
ZLOption(const std::string &group, const std::string &optionName) OPTIONS_SECTION;
virtual ~ZLOption() OPTIONS_SECTION;
protected:
std::string myGroup;
std::string myOptionName;
mutable bool myIsSynchronized;
private:
ZLOption(const ZLOption&) OPTIONS_SECTION;
const ZLOption& operator = (const ZLOption&) OPTIONS_SECTION;
};
不知道大家看到没有函数的定义后面加了 OPTIONS_SECTION
看了半天 我估计是预处理的时候 #define OPTIONS_SECTION const或是其他什么关键字
这样一个用处
但是代码放在vc下面是无法运行的
同样我在gcc下面编译运行很好
我在这个项目中也是没有找到 OPTIONS_SECTION 的定义
估计有可能是gcc的潜规则 对于没有定义的宏 默认加上 #define OPTIONS_SECTION
大家来看看怎么回事~
顺便推荐几本学习gcc的经典书籍 多谢了~