我写了一个C程序pgm.c。它包含一个函数readfile.so。我还写了一个头文件do.h。然后我在一个单独的程序中编写了这个readfile函数,并将ini.c也包含到这个程序中。当我编译do.h时,我得到了错误pgm.c
我的代码是:

do.h
    extern int readfile( FILE *in );

pgm.c
    #include<stdio.h>
    #include"do.h"
    int main(int argc,char **argv)
    {
     FILE *in;
     in=fopen(argv[1],"r");
     readfile(in);
    }

ini.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <limits.h>
    #include <math.h>
    #include <float.h>
    #include"do.h"
    int c;
    int readfile( FILE *in )
    {
    while( c == '#' || c == '\n' )
    {
      if( c == '#' )
       {
        while( ( c = getc(in) ) != '\n' );
       }
      if( c == '\n' )
       c = getc( in );
     }
      if( c == EOF )
      break;
      else
      {
      printf("hai");
      }
    }
    return 1;
    }

我的程序有错误吗?
编译者"pgm.c:(.text+0x2e): undefined reference to readfile"

最佳答案

C区分大小写;

extern int readfile( FILE *in );

不声明与相同的函数;
int readFile( FILE *in )

选择一个外壳,并在任何地方使用它来实现相同的功能。

10-01 03:09
查看更多