我看到 JNI 使用了这些函数,但我不知道它是什么:
JNIEXPORT void JNICALL Java_ClassName_MethodName
(JNIEnv *env, jobject obj)
{
/*Implement Native Method Here*/
}
就c语言特性而言,“JNIEXPORT”和“JNICALL”是什么?
是否可以创建这样的注释:
ROUTE("/test/whatever")
void function(int x)
{
}
并使其有效 C?我需要能够以某种方式在运行时将这些注释与相应的函数相关联。有任何方法吗?我知道可以在运行时从 ELF 文件中读出函数指针,所以这部分就完成了。现在我只需要一些方法来注释函数。我不在乎实现有多难看,它只需要在 Linux 上运行。
最佳答案
JNIEXPORT
是一个宏,其计算结果类似于 __declspec(dllexport)
,具体取决于您的编译器/平台。 JNICALL
计算调用约定,即 __stdcall
或适合您的编译器/平台的任何内容。
至于问题的第二部分,C 中没有运行时反射功能,因此没有注释。
关于java - 如何在 C 中实现注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10513387/