下面這段 C 語言的程式碼
像是 Java 沒有 macro 可以使用,遇到 JNI 這類的東西,系統上就一定要安裝相關的 native library 才可以使用 JNI,如果在 JNI 上面加上一層空殼再搭配這樣的技巧就可以快速地在 native function 與 pseudo function 之間切換。
改寫之前寫過的 JNI - Java Native Interface
#include <stdio.h>效果相當於
int main()
{
//*/
printf("If\n");
/*/
printf("Else\n");
//*/
return 0;
}
#include <stdio.h>如果把第一個註解改成 /*/ 後
int main()
{
#if 1
printf("If\n");
#else
printf("Else\n");
#endif
return 0;
}
#include <stdio.h>效果就相當於
int main()
{
/*/
printf("If\n");
/*/
printf("Else\n");
//*/
return 0;
}
#include <stdio.h>這個小技巧也可以應用在其他可以使用 // /**/ 當作註解的程式語言
int main()
{
#if 0
printf("If\n");
#else
printf("Else\n");
#endif
return 0;
}
像是 Java 沒有 macro 可以使用,遇到 JNI 這類的東西,系統上就一定要安裝相關的 native library 才可以使用 JNI,如果在 JNI 上面加上一層空殼再搭配這樣的技巧就可以快速地在 native function 與 pseudo function 之間切換。
改寫之前寫過的 JNI - Java Native Interface
class HelloWorld如果只是要開發一些跟 JNI 功能無關的 Java 程式部份,又不想要安裝或是無法安裝那些相依的 native library 的時候就很方便了。 ^o^
{
// If '/*/' use native, '//*/' use pseudo.
//*/
public int[][] multiply(int A[][], int B[][]) { return null; }
/*/
public native int[][] multiply(int A[][], int B[][]);
static
{
System.loadLibrary("HelloWorldImp");
}
//*/
public static void main(String[] args)
{
HelloWorld test = new HelloWorld();
int[][] A = new int[5][5];
int[][] B = new int[5][5];
int[][] result = test.multiply(A, B);
System.out.println(result[0][0]);
}
}
1 則留言:
好玩, 對 Java 也很有用
張貼留言