में स्थैतिक और बाहरी वैश्विक चर, मैंने 2 परियोजनाएं बनाईं, सी में पहला और सी ++ में दूसरा, दोनों एक ही व्यवहार के साथ काम करते हैं।सी और सी ++
सी परियोजना:
header.h
int varGlobal=7;
main.c
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
void function(int i)
{
static int a=0;
a++;
int t=i;
i=varGlobal;
varGlobal=t;
printf("Call #%d:\ni=%d\nvarGlobal=%d\n\n",a,i,varGlobal,t);
}
int main() {
function(4);
function(6);
function(12);
return 0;
}
सी ++ परियोजना:
header.h
int varGlobal=7;
main.cpp
#include <iostream>
#include "header.h"
using namespace std;
void function(int i)
{
static int a=0;
int t=i;
a++;
i=varGlobal;
varGlobal=t;
cout<<"Call #"<<a<<":"<<endl<<"i="<<i<<endl<<"varGlobal="<<varGlobal<<endl<<endl;
}
int main() {
function(4);
function(6);
function(12);
return 0;
}
मैंने पढ़ा है कि वैश्विक चर सी में डिफ़ॉल्ट रूप से निर्वासन डिफ़ॉल्ट रूप से और सी में और स्थिर हैं ++; तो सी ++ कोड क्यों काम करता है?
मेरा मतलब है int varGlobal = 7;स्थिर int varGlobal = 7 के समान है; और यदि यह स्थैतिक है तो इसका उपयोग केवल उस फ़ाइल में किया जा सकता है जिसे घोषित किया गया था, है ना?
सबसे पहले ध्यान दें कि 'बस include' कॉपी-सामग्री को चिपकाता है। तो इस तरह के एक फ़ाइल उदाहरण के लिए, इसे सरल बनाने के लिए हटा दिया जाना चाहिए। –