teknoraver icon

static

teknoraver | PRO | 03/22/21 08:57:43 PM UTC | 0 ⭐ | 764 👁️ | Never ⏰ | []
text |

870 B

|

None

|

0 👍

/

0 👎

$ cat a.c
#include "h.h"
 void a(void)
{
        inc(__func__);
}
 $ cat b.c
#include "h.h"
 void b(void)
{
        inc(__func__);
}
 $ cat counter.c
#include <stdio.h>
 void inc(const char *s)
{
        static int counter = 0;
         printf("%s:\t%d\n", s, counter++);
}
 $ cat main.c
#include <stdio.h>
#include "h.h"
 int main()
{
        a();
        b();
        inc(__func__);
        a();
        b();
        inc(__func__);
        a();
        b();
        inc(__func__);
        return 0;
}
 $ cat h.h
void inc(const char *s);
void a(void);
void b(void);
 $ gcc -Wall -c -o main.o main.c
$ gcc -Wall -c -o a.o a.c
$ gcc -Wall -c -o b.o b.c
$ gcc -Wall -c -o counter.o counter.c
$ gcc main.o a.o b.o counter.o -o main
 $ ./main
a:      0
b:      1
main:   2
a:      3
b:      4
main:   5
a:      6
b:      7
main:   8
 

Comments