在cstructs中的数字常量之前预期的â,â或â

时间:2013-08-19 10:16:01

标签: c++ struct g++

#include"symapi.h"


int SymInit               (char                          * db_filename,
                           SYMINIT_ACCMODE_T               access_mode,
                           int                           * p_handle,
                           SYMAPI_CONNECTION_BLK_T       * cblk,
                           char                          * vendor_id)
{
return 0;
}

g ++ -o symapi.o -c sym.cpp

sym.cpp:4:错误:数字常量之前的预期标识符

sym.cpp:4:错误:在数字常量

之前预期','或'...'

当我编译这段小代码时,我得到了上述错误。我不知道如何继续。我已经从头部复制了函数原型,并试图定义它。我的头文件非常大。所以上传到谷歌驱动器:https://docs.google.com/file/d/0B8NCZDm0ClHVWFM3Qm5wU0MwUE0/edit?usp=sharing 请帮忙

1 个答案:

答案 0 :(得分:2)

g++ -E test.cpp显示以下内容。 -E因预处理而停止。

# 2 "test.cpp" 2
int SymInitV(char * db_filename, SYMINIT_ACCMODE_T access_mode, int * p_handle, SYMAPI_CONNECTION_BLK_T * cblk, char * vendor_id, 0x07000393)
{
    return 0;
}

参见最后一个参数是一个简单的数字,没有与之关联的数据类型。

SysInit是symapi.h中定义的宏,用以下宏替换

#define SymInit(f, a, h, cb, vid) SymInitV(f, a, h, cb, vid, SYMAPI_C_VERSION)

而是尝试实现SymInitV函数,该函数采用以下声明

int SymInitV(char * db_filename, SYMINIT_ACCMODE_T access_mode, int * p_handle, SYMAPI_CONNECTION_BLK_T * cblk, char * vendor_id, int version)