So drucken Sie den Wert der globalen Variablen und lokalen Variablen mit gleichem Namen?
Hier ist mein code , ich will drucken, 15 und 12, sondern wegen der Instanz-Mitglied versteckt sich der lokale Wert von a ist immer zweimal gedruckt.
#include <stdio.h>
int a = 12;
int main()
{
int a = 15;
printf("Inside a's main local a = : %d\n",a);
printf("In a global a = %d\n",a);
return 0;
}
Warum und gibt es eine Möglichkeit, es zu drucken in c ? ... BTW ich weiß, dass es in c++.
InformationsquelleAutor der Frage Omkant | 2012-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
extern
Bezeichner in einem neuen compound-Anweisung.Diese Weise:
InformationsquelleAutor der Antwort ouah
Ich weiß, dass dies kein direkt deine Frage zu beantworten, aber der beste Weg, dies zu tun ist, ändern Sie den Namen der lokalen Variablen, damit es nicht zu Konflikten mit den Namen der globalen Variablen.
Wenn Sie die Kontrolle über den code innerhalb der Funktion (d.h., Sie können hinzufügen, ein
extern
- Deklaration, um die globalen Variablen sichtbar), dann können Sie einfach den Namen der variable.Es ist unmöglich zu sagen, welcher name besser wäre. In der Praxis werden die Variablen wird zweifellos mehr beschreibende Namen als
a
. Die Art und Weise Sie verwendet werden sollten, geben wir Ihnen einige Hinweise über gute Namen für Sie.Wenn Sie eigentlich den gleichen Zweck erfüllen, Sie wahrscheinlich nicht beide vorhanden sein müssen. Sie könnten entfernen Sie Variablen, die lokal zu
main()
oder, vielleicht besser, entfernen Sie die globalen und übergeben Sie die lokalen (oder Ihre Adresse) werden an anderen Funktionen, die Sie benötigen, zugreifen können.InformationsquelleAutor der Antwort Keith Thompson
Ich glaube, ich fand meine Antwort in einer Art und Weise... es funktioniert
InformationsquelleAutor der Antwort Omkant
add :: für Globale ambit
InformationsquelleAutor der Antwort Jaime Francisco