I have a function in this form (From [Fastest Implementation of Exponential Function Using SSE](https://stackoverflow.com/questions/47025373)):

```
__m128 FastExpSse(__m128 x)
{
    static __m128  const a   = _mm_set1_ps(12102203.2f); // (1 << 23) / ln(2)
    static __m128i const b   = _mm_set1_epi32(127 * (1 << 23) - 486411);
    static __m128  const m87 = _mm_set1_ps(-87);
    // fast exponential function, x should be in [-87, 87]
    __m128 mask = _mm_cmpge_ps(x, m87);

    __m128i tmp = _mm_add_epi32(_mm_cvtps_epi32(_mm_mul_ps(a, x)), b);
    return _mm_and_ps(_mm_castsi128_ps(tmp), mask);
}

```

I want to make it `C` compatible.  

Yet the compiler doesn't accept the form `static __m128i const b = _mm_set1_epi32(127 * (1 << 23) - 486411);` when I use `C` compiler.

Yet I don't want the first 3 values to be recalculated in each function call.  

One solution is to inline it (But sometimes the compilers reject that). 

Is there a `C` style to achieve it in case the function isn't inlined?

Thank You.