namespace cpp_namespace { struct CppStruct { int field = 1111; int function() { return 2222; } }; union CppUnion { char field_char; short field_short; int field_int; }; CppStruct GetCppStruct() { return CppStruct(); } CppStruct global; CppStruct *GetCppStructPtr() { return &global; } } int global = 3333; int main() { cpp_namespace::CppStruct cpp_struct = cpp_namespace::GetCppStruct(); cpp_struct.function(); int field = 4444; cpp_namespace::CppUnion cpp_union; cpp_union.field_int = 5555; int cpp_scalar = 6666; cpp_namespace::CppStruct cpp_array[16]; cpp_namespace::CppStruct *cpp_pointer = cpp_namespace::GetCppStructPtr(); return 0; // Break here }