0

これは非常に素朴な質問であり、私はたくさん検索しましたが、私の怠惰のために答えを見つけることができませんでした.

私のソース コード関数はすべて lib.c というファイルにあり、main.c で呼び出すヘッダー ファイル lib.h を作成しました。関数がローカルで使用されるグローバル構造体オブジェクトを必要とするため、lib.c 内に struct{} がある場合に問題が発生します。

この複雑さのため、lib.c ソース ファイル内にも lib.h を含める必要があります。これは、struct{} が lib.h 内で宣言されているためです。

ヘッダー ファイルから struct{} を取り出して lib.c ファイル内に配置すると、lib.h に含まれていないため、main.c は構造体を読み取ることができません。

lib.h

struct Structure {} structure;
void func1();
void func2();


lib.c

#include <stdio.h>
#...
void func1() {};
void func2() {};


main.c

#include <stdio.h>
#...
#include "lib.h"
int main() {};
4

0 に答える 0