余由2个项目,第一个在C和第二个在C ++中,具有相同的行为都工作。
C ++项目:
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;
}
C ++项目:
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;
}
我读了全局变量默认情况下,并在C和静态使用C extern关键字默认++; 那么,为什么C ++代码的作品?
我的意思是诠释varGlobal = 7; 是相同的静态INT varGlobal = 7; 如果它是静态的话,就只能在它被宣布,就在文件中使用?