get "conflicting types error" in JNI with C
===

I try to compiled this:


    #include <stdio.h>
    #include <jni.h>
    #include "callJNITest.h"
    
    JNIEXPORT jint JNICALL Java_callJNITest_displayHelloWorld
      (JNIEnv env, jclass jcls) {
    	printf("Hello World!");
    	return 1;
    }

But I always get these errors:
../HelloWorldJNI.c:5:24: error: conflicting types for ‘Java_callJNITest_displayHelloWorld’
../callJNITest.h:15:24: note: previous declaration of ‘Java_callJNITest_displayHelloWorld’ was here
make: *** [HelloWorldJNI.o] Error 1

The error happened also in this case:

    JNIEXPORT void JNICALL Java_callJNITest_displayHelloWorld
      (JNIEnv env, jclass jcls) {
    	printf("Hello World!");
    	return;
    }

but 

    JNIEXPORT JNICALL Java_callJNITest_displayHelloWorld
      (JNIEnv env, jclass jcls) {
    	printf("Hello World!");
    	return;
    }

 works fine.
My question is how return types should be declared in JNI? Thanks!