0

MPLAB X IDE (PIC 開発用 IDE) を使用して C 言語でライブラリを作成したいと考えています。

私のライブラリ ABCLib には、次のような単純なソース ファイルが 1 つあります。

ファイル abc.c

void abcTest(int n){ 
    // I want store n as global variable
} 

MyProject でこのライブラリを使用するには、MyProject ヘッダー フォルダー内に abc.h を作成する必要があります。

ファイルabc.h

#ifndef _ABC_H
#define _ABC_H 

void abcTest(int n);

#endif;

ファイル MyProject.c(メインファイル)

#include "abc.h"

void main(void) {
    abcTest(10);
}

ここで、n をグローバル変数として保存したいので、abcTest() を呼び出した後、必要な場所で n の値を取得できます。

すべてのプロジェクトで再利用することを意図してライブラリを開発しています。

4

2 に答える 2

0

MyProject.c をコンパイルした後、abc.h ファイルは翻訳単位に含まれるため、グローバル静的変数はその翻訳単位内で可視のままにする必要があります。外部オブジェクトからアクセスするには、値を外部に渡すことができる関数が翻訳単位に必要です。

それ以外の場合は、スコープなしでファイル内の任意の場所に名前を付けるだけで、グローバルになります。複数のファイルにわたってグローバルなキャリーを行うには、externキーワードを使用して、別のリンカー シンボルに既に存在するグローバル変数を参照していることをコンパイラに伝えます。

于 2012-05-10T19:42:44.740 に答える