一个静态变量多副本

one static variable to multiple copies

本文关键字:变量 副本 静态 一个      更新时间:2023-10-16

是否有一种方法使静态变量具有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 milesn", get_miles());
   }
}
void runner2() {
   int j;
   for(j=0;j<5;j++) {
      printf("runner2 runs %0d milesn", get_miles());
   }
}
int main() {
  runner1();
  runner2();
}

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

这是矛盾的:您想要两件事,同时又相等。