esp-8266 C++ use of union don't work

Hello, this is my code:

#include "Arduino.h"
#include <stdio.h>
#include <c_types.h>

union val {    
    real32_t valuefloat;
    sint32_t valueint;
  };

valu R[]={
  {2345},
  {38.235},
};

void setup() {
  
  Serial.begin(115200);
  delay(500);
  Serial.println(R[0].valueint);
  Serial.println(R[1].valuefloat,4);
}

void loop() {

}

Compilation OK,
No result when start!, No display error!

Somebody could help me?

That code don't compile.

Post the code you're using!

Wow. Not even close to compiling.

Arduino: 1.8.2 (Mac OS X), Board: "Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None"

Build options changed, rebuilding all
sketch_jul26a:10: error: 'valu' does not name a type
 valu R[] = {
 ^
sketch_jul26a:16: error: expected initializer before 'Serial'
   Serial.begin(115200);
   ^
sketch_jul26a:17: error: expected constructor, destructor, or type conversion before '(' token
   delay(500);
        ^
sketch_jul26a:18: error: 'Serial' does not name a type
   Serial.println(R[0].valueint);
   ^
sketch_jul26a:19: error: 'Serial' does not name a type
   Serial.println(R[1].valuefloat, 4);
   ^
sketch_jul26a:20: error: expected declaration before '}' token
 }
 ^
exit status 1
'valu' does not name a type

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.