oracle存二进制proc,ProC中函数返回一个结构体时出错,请各位高手帮忙看一下!谢了...

查看: 5061|回复: 10

[PRO*C]

ProC中函数返回一个结构体时出错,请各位高手帮忙看一下!谢了

电梯直达

ec0fc3c1d023ecef49c01a89436c42dd.png

2833a783f88e01a4e7eafc82e0d30dcd.gif

发表于 2004-10-18 16:01

|

只看该作者

b9d72fa17df93caadebd08a07c8581b0.gif

|倒序浏览

|阅读模式

part.c: In function `main':

part.c:222: warning: assignment makes pointer from integer without a cast

part.c: At top level:

part.c:310: warning: type mismatch with previous implicit declaration

part.c:222: warning: previous implicit declaration of `getPathNameTbl'

part.c:310: warning: `getPathNameTbl' was previously implicitly declared to retu

rn `int'

part.c: In function `getPathNameTbl':

part.c:313: warning: assignment from incompatible pointer type

part.c:325: `file_type1' undeclared (first use in this function)

part.c:325: (Each undeclared identifier is reported only once

part.c:325: for each function it appears in.)

part.c:328: incompatible types in assignment

part.c:333:39: warning: unknown escape sequence: '\216'

part.c:340: incompatible types in assignment

part.c:346: incompatible types in assignment

part.c:351: incompatible types in assignment

part.c:356: incompatible types in assignment

part.c:361: incompatible types in assignment

part.c:366: incompatible types in assignment

part.c:371: incompatible types in assignment

part.c:385: dereferencing pointer to incomplete type

part.c:386: dereferencing pointer to incomplete type

part.c:387: dereferencing pointer to incomplete type

part.c:389: warning: return from incompatible pointer type

part.c:395:45: warning: unknown escape sequence: '\216'

571bd0082f5894e3c6a7b910e84c8398.png

楼主|

发表于 2004-10-18 17:23

|

只看该作者

#include

#include

#include

#include

EXEC ORACLE OPTION (ORACA=YES);

EXEC ORACLE OPTION (RELEASE_CURSOR=YES);

typedef char asciz[80];

EXEC SQL TYPE asciz IS STRING(80) REFERENCE;

int main(tblType)

char        *tblType;

{

EXEC SQL BEGIN DECLARE SECTION;

char *wk_strUser;

char *wk_strPwd;

char *wk_strDBName;

EXEC SQL END DECLARE SECTION;

asciz    inpra_path;

asciz    inpra_txtname;

asciz    inpra_emp;

int      outpra_path;

#define MAX 80

struct  result

{

char         file_path[MAX];

char        file_name[MAX];

char        table_name[MAX];

};

struct  result  *ret_info;

wk_strUser = getenv("MK_ORACLE_USR&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("USERNAME=%s\n",wk_strUser);

wk_strPwd = getenv("MK_ORACLE_PWD&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("PASSWORD=%s\n",wk_strPwd);

wk_strDBName = getenv("MK_ORACLE_SID&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("SID=%s\n",wk_strDBName);

if (DbLogin(wk_strUser,wk_strPwd,wk_strDBName)!=0)

{

return(1);

exit(1);

}

EXEC SQL WHENEVER SQLERROR DO sql_error();

oraca.orastxtf = ORASTFERR;

ret_info= getPathNameTbl();

sprintf(inpra_path,"%s",ret_info.file_path);

sprintf(inpra_txtname,"%s",ret_info.file_name);

sprintf(inpra_emp,"%s",ret_info.table_name);

EXEC SQL EXECUTE

BEGIN

GCYKGBM00B(:inpra_path, :inpra_txtname, :inpra_emp,

5b24fae4cde99750994428c024162093.gifutpra_path);

end;

END-EXEC;

DbLogout();

exit(0);

}

struct result * getPathNameTbl()

{

char file_name1[MAX],file_path1[MAX],table_name1[MAX];

struct  resultn *ret_info;

ret_info = (struct result *)malloc(sizeof(struct result));

memset(file_path1,0,MAX);

memset(file_name1,0,MAX);

memset(table_name1,0,MAX);

char  wk_ErrorFlag[1];

char  wk_eEroorNo[3];

char  wk_ErrorInfo[256];

char  *file_type;

file_type1=getenv("wk_FileType&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("\n %s \n",file_type);

if ((file_path1=getenv("GC_ENV_GBSSSEND_DIR&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif)==NULL)

{

strcpy(wk_ErrorFlag,"1&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(wk_eEroorNo,"004&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(wk_ErrorInfo,"路径名未能取得&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

}

else

{

if (strcmp(file_type1,"GCYKSHOHIN_SEND&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif==0)

{

file_name1 =getenv("GC_ENV_YKSHOHIN_SEND&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(table_name1,"GCM_SHOHIN");

}

else if (strcmp(file_type1,"GCYKSSV_TORIKUMI_SEND")==0)

{

file_name1=getenv("GCYKSSV_TORIKUMI_SEND");

strcpy(table_name1,"GCM_TORIKUMI");

}

else if (strcmp(file_type1,"GCYKSSV_HINBETSU_SEND")==0)

{

file_name1=getenv("GCYKSSV_HINBETSU_SEND");

strcpy(table_name1,"GCM_SSV_HINBETSU");

}

else if (strcmp(file_type1,"GCYKPOS_VCD_SEND")==0)

{

file_name1=getenv("GCYKPOS_VCD_SEND");

strcpy(table_name1,"GCM_POS_VCD");

}

else if (strcmp(file_type1,"GCYKSSV_SAGYO_SEND")==0)

{

file_name1=getenv("GCYKSSV_SAGYO_SEND");

strcpy(table_name1,"GCM_GAISHO_SAGYO");

}

else if (strcmp(file_type1,"GCYKYOTO_SEND")==0)

{

file_name1=getenv("GCYKYOTO_SEND");

strcpy(table_name1,"GCM_YOTO");

}

else if (strcmp(file_type1,"GCYKHAISO_SEND")==0)

{

file_name1=getenv("GCYKHAISO_SEND");

strcpy(table_name1,"GCM_HAISO");

}

else

{

strcpy(wk_ErrorFlag,"1");

strcpy(wk_eEroorNo,"005");

strcpy(wk_ErrorInfo,"ファイル類型の引数不正確");

}

}

if (file_name1!=NULL)

{

strcpy(ret_info->file_path,file_path1);

strcpy(ret_info->file_name,file_name1);

strcpy(ret_info->table_name,table_name1);

return (ret_info);

}

else

{

strcpy(wk_ErrorFlag,"1");

strcpy(wk_eEroorNo,"006");

strcpy(wk_ErrorInfo,"文件名未能取得");

}

}

int        DbLogin(userid,passwd,conect)

char        *userid;

char        *passwd;

char        *conect;

{

EXEC SQL BEGIN DECLARE SECTION;

char         username[20];

char        password[20];

char        dbstring[20];

EXEC SQL END DECLARE SECTION;

sprintf(username,"%s",userid);

sprintf(password,"%s",passwd);

if ( conect == NULL )

{

EXEC SQL CONNECT :username IDENTIFIED BY

4f06a01a81d5603cca001c0e92e5ebda.gifassword;

}

else

{

sprintf(dbstring,"%s",conect);

EXEC SQL CONNECT :username IDENTIFIED BY

4f06a01a81d5603cca001c0e92e5ebda.gifassword using :dbstring;

}

if( QueryCondition()!=0 ) return(1);

return(0);

}

571bd0082f5894e3c6a7b910e84c8398.png

楼主|

发表于 2004-10-18 17:26

|

只看该作者

改成上面的代码后,现在报错这样了!

part.c: In function `main':

part.c:208: warning: assignment makes pointer from integer without a cast

part.c: At top level:

part.c:229: warning: type mismatch with previous implicit declaration

part.c:208: warning: previous implicit declaration of `get_path'

part.c:229: warning: `get_path' was previously implicitly declared to return `in

t'

part.c: In function `get_path':

part.c:247: incompatible types in assignment

part.c:252:39: warning: unknown escape sequence: '\216'

part.c:260: incompatible types in assignment

part.c:266: incompatible types in assignment

part.c:271: incompatible types in assignment

part.c:276: incompatible types in assignment

part.c:281: incompatible types in assignment

part.c:286: incompatible types in assignment

part.c:291: incompatible types in assignment

part.c:316:45: warning: unknown escape sequence: '\216'

2833a783f88e01a4e7eafc82e0d30dcd.gif

发表于 2004-10-19 08:46

|

只看该作者

get_path, where, please give the full source.

571bd0082f5894e3c6a7b910e84c8398.png

楼主|

发表于 2004-10-19 08:56

|

只看该作者

#include

#include

#include

#include

#include

#define MAX   80

struct  result

{

char         file_path[MAX];

char        file_name[MAX];

char        table_name[MAX];

};

int sql_error()

{

EXEC SQL WHENEVER SQLERROR CONTINUE;

DbRollback();

return(1);

exit(1);

}

int main()

{

char    *wk_strUser;

char    *wk_strPwd;

char    *wk_strDBName;

VARCHAR    inpra_path[MAX];

VARCHAR    inpra_txtname[MAX];

VARCHAR    inpra_emp[MAX];

struct  result  *pp;

wk_strUser = getenv("MK_ORACLE_USR&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("USERNAME=%s\n",wk_strUser);

wk_strPwd = getenv("MK_ORACLE_PWD&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("PASSWORD=%s\n",wk_strPwd);

wk_strDBName = getenv("MK_ORACLE_SID&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("SID=%s\n",wk_strDBName);

if (DbLogin(wk_strUser,wk_strPwd,wk_strDBName)!=0)

{

return(1);

exit(1);

}

EXEC SQL WHENEVER SQLERROR DO sql_error();

oraca.orastxtf = ORASTFERR;

pp= get_path();

strcpy(inpra_path.arr,pp->file_path);

inpra_path.len=strlen(inpra_path.arr);

strcpy(inpra_txtname.arr,pp->file_name);

inpra_txtname.len=strlen(inpra_txtname.arr);

strcpy(inpra_emp.arr,pp->table_name);

inpra_emp.len=strlen(inpra_emp.arr);

printf("%s\n",inpra_path);

printf("%s\n",inpra_txtname);

printf("%s\n",inpra_emp);

DbLogout();

puts("\nHave a good day!\n&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

return (1);

exit(0);

}

struct result * get_path()

{

char file_name1[MAX],file_path1[MAX],table_name1[MAX];

struct  result *ret_info;

ret_info = (struct result *)malloc(sizeof(struct result));

memset(file_path1,0,MAX);

memset(file_name1,0,MAX);

memset(table_name1,0,MAX);

char  wk_ErrorFlag[1];

char  wk_eEroorNo[3];

char  wk_ErrorInfo[256];

char  *file_type;

file_type=getenv("wk_FileType&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("\n %s \n",file_type);

if ((file_path1=getenv("GC_ENV_GBSSSEND_DIR&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif)==NULL)

{

strcpy(wk_ErrorFlag,"1&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(wk_eEroorNo,"004&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(wk_ErrorInfo,"路径名未能取得&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

exit (1);

}

else

{

if (strcmp(file_type,"GCYKSHOHIN_SEND&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif==0)

{

file_name1 =getenv("GC_ENV_YKSHOHIN_SEND");

strcpy(table_name1,"GCM_SHOHIN");

/*sprintf(dbstring,"%s",conect);*/

}

else if (strcmp(file_type,"GCYKSSV_TORIKUMI_SEND")==0)

{

file_name1=getenv("GCYKSSV_TORIKUMI_SEND");

strcpy(table_name1,"GCM_TORIKUMI");

}

else if (strcmp(file_type,"GCYKSSV_HINBETSU_SEND")==0)

{

file_name1=getenv("GCYKSSV_HINBETSU_SEND");

strcpy(table_name1,"GCM_SSV_HINBETSU");

}

else if (strcmp(file_type,"GCYKPOS_VCD_SEND")==0)

{

file_name1=getenv("GCYKPOS_VCD_SEND");

strcpy(table_name1,"GCM_POS_VCD");

}

else if (strcmp(file_type,"GCYKSSV_SAGYO_SEND")==0)

{

file_name1=getenv("GCYKSSV_SAGYO_SEND");

strcpy(table_name1,"GCM_GAISHO_SAGYO");

}

else if (strcmp(file_type,"GCYKYOTO_SEND")==0)

{

file_name1=getenv("GCYKYOTO_SEND");

strcpy(table_name1,"GCM_YOTO");

}

else if (strcmp(file_type,"GCYKHAISO_SEND")==0)

{

file_name1=getenv("GCYKHAISO_SEND");

strcpy(table_name1,"GCM_HAISO");

}

else

{

strcpy(wk_ErrorFlag,"1");

strcpy(wk_eEroorNo,"005");

strcpy(wk_ErrorInfo,"ファイル類型の引数不正確");

exit (1);

}

}

printf("\n%s\n",file_name1);

if (file_name1!=NULL)

{

strcpy(ret_info->file_path,file_path1);

strcpy(ret_info->file_name,file_name1);

strcpy(ret_info->table_name,table_name1);

return (ret_info);

}

else

{

strcpy(wk_ErrorFlag,"1");

strcpy(wk_eEroorNo,"006");

strcpy(wk_ErrorInfo,"文件名未能取得");

exit(1);

}

}

int        DbLogin(userid,passwd,conect)

char        *userid;

char        *passwd;

char        *conect;

{

EXEC SQL BEGIN DECLARE SECTION;

char         username[20];

char        password[20];

char        dbstring[20];

EXEC SQL END DECLARE SECTION;

sprintf(username,"%s",userid);

sprintf(password,"%s",passwd);

if ( conect == NULL )

{

EXEC SQL CONNECT :username IDENTIFIED BY

4f06a01a81d5603cca001c0e92e5ebda.gifassword;

}

else

{

sprintf(dbstring,"%s",conect);

EXEC SQL CONNECT :username IDENTIFIED BY

4f06a01a81d5603cca001c0e92e5ebda.gifassword using :dbstring;

}

if( QueryCondition()!=0 ) return(1);

return(0);

}

int        DbLogout()

{

EXEC SQL COMMIT WORK RELEASE;

return(0);

}

int        DbCommit()

{

EXEC SQL COMMIT WORK;

return(0);

}

int        DbRollback()

{

EXEC SQL ROLLBACK WORK;

return(0);

}

int        QueryCondition()

{

int        i;

char        *p;

if( sqlca.sqlcode!=0 && sqlca.sqlcode!=1403 && sqlca.sqlcode!=-1405 )

{

i=(int)sqlca.sqlerrm.sqlerrml;

p=sqlca.sqlerrm.sqlerrmc;

sqlca.sqlerrm.sqlerrmc[i-1]='\0';

if( sqlca.sqlcode==-1012 )

{

return(1);

}

else

{

return(1);

}

}

else

{

return(0);

}

}

b0531908a3970f6d646bf063adc7cccf.gif

发表于 2004-10-19 09:56

|

只看该作者

#include

#include

#include

#include

#include

#define MAX 80

EXEC SQL BEGIN DECLARE SECTION

struct result

{

char file_path[MAX];

char file_name[MAX];

char table_name[MAX];

};

struct result *pp;

char *wk_strUser;

char *wk_strPwd;

char *wk_strDBName;

VARCHAR inpra_path[MAX];

VARCHAR inpra_txtname[MAX];

VARCHAR inpra_emp[MAX];

EXEC SQL END DECLARE SECTION;

struct result *get_path()

{

char file_name1[MAX],file_path1[MAX],table_name1[MAX];

struct result *ret_info;

ret_info = (struct result *)malloc(sizeof(struct result));

memset(file_path1,0,MAX);

memset(file_name1,0,MAX);

memset(table_name1,0,MAX);

char wk_ErrorFlag[1];

char wk_eEroorNo[3];

char wk_ErrorInfo[256];

char *file_type;

file_type=getenv("wk_FileType&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

printf("\n %s \n",file_type);

if ((file_path1=getenv("GC_ENV_GBSSSEND_DIR&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif)==NULL)

{

strcpy(wk_ErrorFlag,"1&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(wk_eEroorNo,"004&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(wk_ErrorInfo,"路径名未能取得&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

exit (1);

}

else

{

if (strcmp(file_type,"GCYKSHOHIN_SEND&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif==0)

{

file_name1 =getenv("GC_ENV_YKSHOHIN_SEND&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(table_name1,"GCM_SHOHIN&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

/*sprintf(dbstring,"%s",conect);*/

}

else if (strcmp(file_type,"GCYKSSV_TORIKUMI_SEND&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif==0)

{

file_name1=getenv("GCYKSSV_TORIKUMI_SEND&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif;

strcpy(table_name1,"GCM_TORIKUMI");

}

else if (strcmp(file_type,"GCYKSSV_HINBETSU_SEND")==0)

{

file_name1=getenv("GCYKSSV_HINBETSU_SEND");

strcpy(table_name1,"GCM_SSV_HINBETSU");

}

else if (strcmp(file_type,"GCYKPOS_VCD_SEND")==0)

{

file_name1=getenv("GCYKPOS_VCD_SEND");

strcpy(table_name1,"GCM_POS_VCD");

}

else if (strcmp(file_type,"GCYKSSV_SAGYO_SEND")==0)

{

file_name1=getenv("GCYKSSV_SAGYO_SEND");

strcpy(table_name1,"GCM_GAISHO_SAGYO");

}

else if (strcmp(file_type,"GCYKYOTO_SEND")==0)

{

file_name1=getenv("GCYKYOTO_SEND");

strcpy(table_name1,"GCM_YOTO");

}

else if (strcmp(file_type,"GCYKHAISO_SEND")==0)

{

file_name1=getenv("GCYKHAISO_SEND");

strcpy(table_name1,"GCM_HAISO");

}

else

{

strcpy(wk_ErrorFlag,"1");

strcpy(wk_eEroorNo,"005");

strcpy(wk_ErrorInfo,"ファイル類型の引数不正確");

exit (1);

}

}

printf("\n%s\n",file_name1);

if (file_name1!=NULL)

{

strcpy(ret_info->file_path,file_path1);

strcpy(ret_info->file_name,file_name1);

strcpy(ret_info->table_name,table_name1);

return (ret_info);

}

else

{

strcpy(wk_ErrorFlag,"1");

strcpy(wk_eEroorNo,"006");

strcpy(wk_ErrorInfo,"文件名未能取得");

exit(1);

}

}

int DbLogin(char *userid, char *passwd, char *conect)

{

EXEC SQL BEGIN DECLARE SECTION;

char username[20];

char password[20];

char dbstring[20];

EXEC SQL END DECLARE SECTION;

sprintf(username,"%s",userid);

sprintf(password,"%s",passwd);

if ( conect == NULL )

{

EXEC SQL CONNECT :username IDENTIFIED BY assword;

}

else

{

sprintf(dbstring,"%s",conect);

EXEC SQL CONNECT :username IDENTIFIED BY assword using :dbstring;

}

if( QueryCondition()!=0 )

return(1);

return(0);

}

int DbLogout()

{

EXEC SQL COMMIT WORK RELEASE;

return(0);

}

int DbCommit()

{

EXEC SQL COMMIT WORK;

return(0);

}

int DbRollback()

{

EXEC SQL ROLLBACK WORK;

return(0);

}

int QueryCondition()

{

int i;

char *p;

if( sqlca.sqlcode!=0 && sqlca.sqlcode!=1403 && sqlca.sqlcode!=-1405 )

{

i=(int)sqlca.sqlerrm.sqlerrml;

p=sqlca.sqlerrm.sqlerrmc;

sqlca.sqlerrm.sqlerrmc[i-1]='\0';

if( sqlca.sqlcode==-1012 )

{

return(1);

}

else

{

return(1);

}

}

else

{

return(0);

}

}

int sql_error()

{

EXEC SQL WHENEVER SQLERROR CONTINUE;

DbRollback();

return(1);

exit(1);

}

int main()

{

wk_strUser = getenv("MK_ORACLE_USR");

printf("USERNAME=%s\n",wk_strUser);

wk_strPwd = getenv("MK_ORACLE_PWD");

printf("PASSWORD=%s\n",wk_strPwd);

wk_strDBName = getenv("MK_ORACLE_SID");

printf("SID=%s\n",wk_strDBName);

if (DbLogin(wk_strUser,wk_strPwd,wk_strDBName)!=0)

{

return(1);

exit(1);

}

EXEC SQL WHENEVER SQLERROR DO sql_error();

oraca.orastxtf = ORASTFERR;

pp= get_path();

strcpy(inpra_path.arr,pp->file_path);

inpra_path.len=strlen(inpra_path.arr);

strcpy(inpra_txtname.arr,pp->file_name);

inpra_txtname.len=strlen(inpra_txtname.arr);

strcpy(inpra_emp.arr,pp->table_name);

inpra_emp.len=strlen(inpra_emp.arr);

printf("%s\n",inpra_path.arr);

printf("%s\n",inpra_txtname.arr);

printf("%s\n",inpra_emp.arr);

DbLogout();

puts("\nHave a good day!\n");

return (1);

exit(0);

}

2833a783f88e01a4e7eafc82e0d30dcd.gif

发表于 2004-10-19 10:49

|

只看该作者

楼上的130行一些assword修改完后,precompile后出现struct的问题

Syntax error at line 10, column 1, file d:\gino\egh\personal\pc\test.pc:

struct result

1

(1) PCC-S-02201, Encountered the symbol "struct" when expecting one of the following:

;

The symbol ";" was substituted for "struct" to continue.

(1) PCC-F-02102, Fatal error while doing C preprocessing

b0531908a3970f6d646bf063adc7cccf.gif

发表于 2004-10-19 11:03

|

只看该作者

这些语法的ERRORS, 是原楼主的贴子的问题。

以下解决了:

if ( conect == NULL )

{

EXEC SQL CONNECT :username IDENTIFIED BY

4f06a01a81d5603cca001c0e92e5ebda.gifassword;

}

else

{

sprintf(dbstring,"%s",conect);

EXEC SQL CONNECT :username IDENTIFIED BY

4f06a01a81d5603cca001c0e92e5ebda.gifassword using :dbstring;

}

2833a783f88e01a4e7eafc82e0d30dcd.gif

发表于 2004-10-19 11:45

|

只看该作者

抱歉,关于楼上说的,我知道,我也修正完毕了,可是目前是出现在STRUCT的问题

ERROR MESSAGE:

Syntax error at line 10, column 1, file d:\gino\egh\personal\pc\test.pc:

struct result

1

(1) PCC-S-02201, Encountered the symbol "struct" when expecting one of the following:

;

The symbol ";" was substituted for "struct" to continue.

(1) PCC-F-02102, Fatal error while doing C preprocessing

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值