C++中#链接符使用异常有关问题
C++中##链接符使用错误问题代码如下,使用msdn的可以编译可输出字符连接的内容,define一个struct却显示找不
C++中##链接符使用错误问题
代码如下,使用msdn的可以编译可输出字符连接的内容,define一个struct却显示找不到,求高手大神帮忙瞧瞧
//msdn example
#define paster( n ) printf_s( "token" #n " = %d\n", token##n )
int token9 = 9;
//struct
#define __KHASH_TYPE(name, khkey_t, khval_t) \
typedef struct { \
khint_t n_buckets, size, n_occupied, upper_bound; \
khint32_t *flags; \
khkey_t *keys; \
khval_t *vals; \
} kh_##name##_t;
//declaration
#define KHASH_DECLARE(name, khkey_t, khval_t) \
__KHASH_TYPE(name, khkey_t, khval_t) \
extern kh_##name##_t *kh_init_##name();
//define
#define KHASH_INIT2(name, SCOPE, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \
__KHASH_TYPE(name, khkey_t, khval_t) \
SCOPE kh_##name##_t *kh_init_##name(void) {\
return (kh_##name##_t*)calloc(1, sizeof(kh_##name##_t));\
}
#define kh_init(name) kh_init_##name()
int _tmain(int argc, _TCHAR* argv[])
{
paster(9);
(void*)kh_init(objmap);
}
输出错误:
1>------ 已启动生成: 项目: testJJ, 配置: Debug Win32 ------
1> testJJ.cpp
1>e:\workspace\c++\testjj\testjj\testjj.cpp(37): error C3861: “kh_init_objmap”: 找不到标识符
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
[解决办法]这样修改一下,试试
你定义了一些宏,可是都没有用到。