Question: How can i refresh grid data when new data added in exts?

Answer: 
Making it const and making it static do two different things.

* if it is const, each function call gets its own unchangeable instance of the struct
* if it is static there is one changeable instance of the struct shared across all function calls

It sounds as though what you want is a struct instance that is both static and const, which is a reasonable thing to do.

Performance wise, the static version should have a slight edge, as construction of the struct instance will only be done once.
If you declare your array static, it will be placed in the data section of the executable and initialized only once (on first access) or even not (it might be initialized in the executable already).

Without static, the data will be on the stack of each of the function's invocations, and initialized every time the function is called.

Just a little nitpick, when you say you've seen code where `struct u2type` is static, this is not really true. Although the static storage specifier appears before the struct, it really applies to the variable, in this case, the array. Even with

```
static struct foo { ... } foos [] = { ... };

```

You can then do

```
struct foo foo1={ ... };

```

and `foo1` will be an automatic variable.