java - 如何在 C 中实现注解?

标签 java c linux elf

我看到 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/

相关文章:

linux - Bash - 如何让循环只运行一次?

c - Linux 上的 Termios.h 错误,Windows 上的 -lftdi 错误。交叉编译

java - javafx中的后台服务和服务监控

java - 如何在 Struts 2 中使用没有后缀(例如 .action)的 URL?

java - 单例变量不会跨系统持久存在

c - C 中的免费链接列表

java - 我如何将 latlng 数组列表的值传递给多边形

c - 使用 Visual Studio 2010 的 pdcurses 链接

c - 如何在主机将它们发送到网络之前修改数据包 header (IP header ,TCP header )

c - 当某个进程打开文件时,unlink() 会做什么?