gpt4 book ai didi

c - 错误 : expected identifier or '(' in global variable

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:35 24 4
gpt4 key购买 nike

我在编译过程中遇到了这个错误。我之前已经在这个网站上看到过这个错误,我认为这个错误可能发生在 ;或者有什么东西在错误的地方。但我找不到。

Screenshot

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#define MAX 80

typedef struct assemble
{
int op;
int ni;
int xbpe;
int addr;
}Assemble;


void get_token(char *bp);
int hTod(char *dp);
int bTod(char *dp);
void codeBreak(char *cp);
void result(int t);


Assemble asm;
int type;


int main()
{
FILE *fp;
char buf[MAX];

if( (fp = fopen("inst.txt","r")) == NULL ){
fprintf(stderr, "file not found...\n"); exit(1);
}
while(fgets(buf,sizeof(buf),fp) != NULL){
get_token(buf);
}

fclose(fp);
return 0;
}

void get_token(char *bp)
{
char *cp;
int i = 1;

for(cp=strtok(bp, " \t\n"); cp != NULL; )
{

if( (*(cp+0) == '0') && (*(cp+1) == 'x') )
{
if( i == -1 )
asm.addr = hTod(cp);
if( i == 1)
asm.op = hTod(cp);
i *= -1;
}
else
{
codeBreak(cp);
}

cp = strtok(NULL, " \t\n");
}

result(type);
}


void codeBreak(char *cp)
{

if ( strlen(cp) == 2 ) // ni 판단
{
asm.ni = bTod(cp);
}
else if( strlen(cp) == 1 )
{
asm.xbpe = bTod(cp)*pow(2,3);
type = 1;
}
else if( strlen(cp) == 4 )
{
if( *(cp+3) == '1')
{
asm.xbpe = bTod(cp);
type = 2;
}
else
{
asm.xbpe = bTod(cp);
type = 3;
}
}
}

void result(int t)
{
switch(t)
{
case 1 : printf("0x%x%x\n", (asm.op+asm.ni), asm.addr); break;
case 2 : printf("0x%x%x%.5x\n", (asm.op+asm.ni), asm.xbpe, asm.addr); break;
case 3 : printf("0x%x%x%.3x\n", (asm.op+asm.ni), asm.xbpe, asm.addr); break;
default : break;
}
}


/* Hex to decimal */
int hTod(char *dp)
{
int i;
int dec = 0;

for( i=2 ; i < strlen(dp) ; i++)
{
switch (*(dp+i))
{
case 'a' : *(dp+i) = 58; break;
case 'b' : *(dp+i) = 59; break;
case 'c' : *(dp+i) = 60; break;
case 'd' : *(dp+i) = 61; break;
case 'e' : *(dp+i) = 62; break;
case 'f' : *(dp+i) = 63; break;
}

dec += (*(dp+i)-48) * pow( 16, (strlen(dp)-(i+1)));

}
return dec;
}

/* binary to decimal*/
int bTod(char *dp)
{
int i;
int dec = 0;

for( i = 0; i < strlen(dp) ; i++)
{
dec += (*(dp+i)-48) * pow( 2, (strlen(dp) - (i+1)));
}
return dec;
}

最佳答案

asm 是关键字。而不是

Assemble asm;

使用不同的东西,例如:

Assemble asm1;

但编译器报告的问题有所不同。你好像用过

ASSEMBLY asm;

在你编译的代码中。

关于c - 错误 : expected identifier or '(' in global variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33645503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com