一个静态变量到多个副本

时间:2018-03-25 04:32:56

标签: c++ c variables static

有没有办法让静态变量在C / C ++中有多个副本?

以下代码有一个静态变量 - 里程。如何实现runner1()和runner2()有自己的英里副本,但保持里程为静态?

test.h

static int miles;
extern int get_miles();

test.c的

#include "test.h"

int get_miles() {
   miles = miles + 1;
   return miles;
}

user.c的

#include <stdio.h>
#include "test.h"

extern void runner1();
extern void runner2();

void runner1() {
   int i;
   for(i=0;i<5;i++) {
      printf("runner1 runs %0d miles\n", get_miles());
   }
}

void runner2() {
   int j;
   for(j=0;j<5;j++) {
      printf("runner2 runs %0d miles\n", get_miles());
   }
}

int main() {
  runner1();
  runner2();
}

https://www.edaplayground.com/x/3G7h

1 个答案:

答案 0 :(得分:0)

这是矛盾的:你想要两件不同且同时相同的东西。