Move C extern

Move extern up to accommodate enum functions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py
index 03751c4..115d797 100755
--- a/generator/nanopb_generator.py
+++ b/generator/nanopb_generator.py
@@ -1957,6 +1957,10 @@
                 yield extension.extension_decl()
             yield '\n'
 
+        yield '#ifdef __cplusplus\n'
+        yield 'extern "C" {\n'
+        yield '#endif\n\n'
+
         if self.enums:
                 yield '/* Helper constants for enums */\n'
                 for enum in self.enums:
@@ -1966,10 +1970,6 @@
                     yield msg.enumtype_defines() + '\n'
                 yield '\n'
 
-        yield '#ifdef __cplusplus\n'
-        yield 'extern "C" {\n'
-        yield '#endif\n\n'
-
         if self.messages:
             yield '/* Initializer values for message structs */\n'
             for msg in self.messages: