Wie teile ich eine globale Variable zwischen C-Dateien?

Lesezeit: 3 Minuten

Benutzeravatar von peter_perl
peter_perl

Wenn ich eine globale Variable in a definiere .c Datei, wie kann ich dieselbe Variable in einer anderen verwenden .c Datei?

file1.c:

#include<stdio.h>

int i=10;

int main()
{
    printf("%d",i);
    return 0;
}

file2.c:

#include<stdio.h>

int main()
{
    //some data regarding i
    printf("%d",i);
    return 0;
}

Wie kann die zweite Datei file2.c Verwenden Sie den Wert von i aus der ersten Datei file1.c?

  • mögliches Duplikat von Wie teile ich Variablen zwischen verschiedenen .c-Dateien?

    – 7hi4g0

    3. Juni 2015 um 6:16 Uhr

  • Mögliches Duplikat von Wie verwende ich extern, um Variablen zwischen Quelldateien in C gemeinsam zu nutzen?

    Benutzer719662

    3. Juni 2016 um 5:41 Uhr

Datei 1:

int x = 50;

Datei 2:

extern int x;

printf("%d", x);

  • nein, ich habe nichts vergessen. Ich erkläre nur, was Sie in diese Dateien einfügen würden.

    – Rocky Riemenscheibe

    22. Juli 2011 um 16:26 Uhr

  • Außerdem sollte Datei 1 KEINE Header-Datei sein, sondern eine .c-Datei. Datei 2 kann eine Header-Datei sein, die jedoch den Teil “extern int x” enthält.

    – Rocky Riemenscheibe

    22. Juli 2011 um 16:27 Uhr

  • @fresh_graduate: Die Linie setzen extern int x; in einer Header-Datei und einschließlich dieser Datei aus file2.c, hat exakt der gleiche Effekt wie das Einfügen der Zeile in file2.c. Es liegt an Ihnen, wie Sie Ihren Code organisieren. Alles, was Sie brauchen, ist, dass Datei 2 diese Zeile enthält, nachdem der Präprozessor mit den Includes und allem anderen, was er tut, fertig ist.

    – Steve Jessop

    22. Juli 2011 um 16:41 Uhr


  • @steve..ich kann Ihren Kommentar als Antwort akzeptieren. Da ich über extern Bescheid weiß, kann ich es überall im Internet leicht finden, konnte aber das Einbinden von Dateien nicht so verstehen, wie es gemacht wird. Ihr obiger Kommentar hat alles gelöscht, danke. Seit Ich kann einen Kommentar nicht als Antwort +1 für Ihren Kommentar akzeptieren. Niemand hat den Punkt, den Sie hier erwähnt haben, eindeutig berührt

    – peter_perl

    22. Juli 2011 um 17:22 Uhr


  • Kann ich dasselbe mit einem Array machen?

    – Paul g.

    16. April 2021 um 16:21 Uhr

Verwenden Sie die extern Schlüsselwort, um die Variable im anderen zu deklarieren .c Datei. Z.B:

extern int counter;

bedeutet, dass sich der eigentliche Speicher in einer anderen Datei befindet. Es kann sowohl für Variablen als auch für Funktionsprototypen verwendet werden.

  • Nur für meine Ausbildung könnte ich ein Beispiel für die Verwendung einer Funktionsprototypendeklaration sehen extern? Ist es genauso einfach wie Putten extern vor dem Prototyp? (z.B, extern void doSomething(int, char *);)

    – Platin Azur

    22. Juli 2011 um 17:08 Uhr

  • @Platinum Azure: in C ist eine Funktionsdeklaration extern standardmäßig. Aber es schadet nichts, das hinzuzufügen extern explizit, und es würde genau wie in Ihrem Beispiel erfolgen.

    – Michael Burr

    22. Juli 2011 um 23:29 Uhr

verwenden extern <variable type> <variable name> in einem Header oder einer anderen C-Datei.

  • aber wie soll ich die dateien einfügen? ist das nicht nötig?

    – peter_perl

    22. Juli 2011 um 16:21 Uhr

  • @fresh_graduate: Sie müssen die Datei nicht einschließen, der Linker wird es für Sie herausfinden.

    – Ascha

    22. Juli 2011 um 16:23 Uhr


In dieser Sekunde .c Datei verwenden extern Schlüsselwort mit demselben Variablennamen.

Benutzeravatar von ami
Ami

Machen Sie dasselbe wie in Datei1.c In Datei2.c:

#include <stdio.h> 

extern int i;  /*This declare that i is an int variable which is defined in some other file*/

int main(void)
{
/* your code*/

Wenn Sie int i verwenden; in file2.c unter main() wird i dann als lokale Auto-Variable behandelt, die nicht mit der in file1.c definierten identisch ist

Benutzeravatar von Kiran Padwal
Kiran Padwal

Verwenden Sie das Schlüsselwort extern in einer anderen .c-Datei.

Benutzeravatar von bharaniprakash tumu
bharaniprakash tumu

Wenn Sie die globale Variable i von file1.c in file2.c verwenden möchten, sind die folgenden Punkte zu beachten:

  1. Hauptfunktion sollte nicht in file2.c vorhanden sein
  2. Jetzt kann die globale Variable i auf zwei Arten mit file2.c geteilt werden:
    a) durch Deklaration mit dem Schlüsselwort extern in file2.c, dh extern int i;
    b) durch Definieren der Variablen i in einer Header-Datei und Einschließen dieser Header-Datei in file2.c.

1415200cookie-checkWie teile ich eine globale Variable zwischen C-Dateien?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy