我试图编写一个能够读取.asm文件的程序,用c。
#include <stdio.h>
int preprocess_get_line(char label[], char instruction[], FILE* fp);
int main(int argc, char *argv[])
{
/* Open file and check success */
char *filename = "helloworld.asm";
if (argc >1)
{
filename = argv[1];
}
FILE* inputfile = fopen(filename, "r");
if(inputfile == NULL)
{
fprintf(stderr, "Unable to open \"%s\"\n", filename);
return 1;
}
while (preprocess_get_line(label, instruction, inputfile))
{
fprintf("%s: %s", label, instruction);
}
return 0;
}
int preprocess_get_line(char label[], char instruction[], FILE* fp)
{
fgets(str,260, fp);
while(character != EOF)
{
printf("ASCII hex: %2x '%c'\n", (int)character, character);
character = fgets(inputfile);
}
fclose(inputfile);
}
这是我编写的代码,但我仍然在代码中收到多个错误。 我在第19行中遇到的一个特定错误 标签未声明(首次使用此功能) 我的理解是我已经宣布了这个功能(第2行) 第19行的另一个错误 每个未声明的标识符仅针对其出现在中的每个函数报告一次 至于这个错误,我不确定问题是什么。
答案 0 :(得分:0)
label
和instruction
。您定义了inputfile
,但未定义其他两个。