я могу сделать функции с неразрешенной зависимостью в C? - PullRequest
0 голосов
/ 26 октября 2019

Что такое SHORTEST или Самый простой способ решения следующей проблемы зависимости. Учитывая, я должен хранить xx в отдельном файле.

file1.h

    static inline void xx(){
      yy();//yy is not defined in this file but defined in file2.c;
    }

file2.c

  #include "file1.h"
  void yy(){
     printf("Hello");
   }

    void main(){
      xx();
    }

Ошибка компилятора в файле1 гг не определена.

Ответы [ 3 ]

1 голос
/ 26 октября 2019

Предварительно объявить yy.

file1.h

+++ void yy();

    static inline void xx(){
      yy();
    }
1 голос
/ 26 октября 2019

Просто объявление функции перед использованием решит проблему.

static inline void xx() {
    void yy();
    yy();  // no more yy is not declared
}
1 голос
/ 26 октября 2019

Требуется декларация, но не определение:

// file1.h

static inline void xx() {
    void yy(); // Just a declaration

    yy(); 
}
// file2.c

#include "file1.h"
void yy() {
    printf("Hello");
}

int main() { // void main is not legal C
    xx(); // Works fine.
}
...