How to cause macro expansion before concatonation?

    #define JNI_DECLARE( classname, methodname ) \
         classname  ## methodname( JNI* env ) 

    #define JAVA_CLASS Java_com_example
    void JNI_DECLARE( JAVA_CLASS, open ) {}


This expands to:

    void JAVA_CLASS_open( JNI* env ) {}

How do I get:

    void Java_com_example_open( JNI* env ) {}

?

How to cause macro expansion before concatonation?
===


    #define JNI_DECLARE( classname, methodname ) \
         classname  ## methodname( JNI* env ) 

    #define JAVA_CLASS Java_com_example
    void JNI_DECLARE( JAVA_CLASS, open ) {}


This expands to:

    void JAVA_CLASS_open( JNI* env ) {}

How do I get:

    void Java_com_example_open( JNI* env ) {}

?
