Persisting circular buffer throughout C code
Data structures that you declare outside of any function will be visible to all functions in the program. You need to declare the data structure in any source files that need to use it, and you need to define the data structure in exactly one source file.

In general, you can initialize a variable when you define it but not when you declare it. Use the extern qualifier to declare a global variable in those source code files that do not define the variable.