我有一個頭文件header.h,其中變量被定義爲x。從Android代碼定義C宏
的#define變量X
變量x的基礎上我在交流文件結構體Y - program.c:
#include header.h
Structure y
{
int val[variable];
.
.
//other elements
}
void func()
{
//here instance of y->val[variable] is used heavily
}
這種C代碼(header.h和程序。 c)是一個JNI代碼,我正在製作一個共享庫.so,並將其加載到Android java代碼中。 現在最近我開始知道我的代碼中的一個錯誤,解決方法是動態地將變量值定義爲x。 現在除了從Android到JNI通過這個值是有辦法,我可以直接在#定義Android的宏java的說MACRODEFINED_FROM_ANDROID語言對C 使得頭文件變成這樣:
#ifdef MACRODEFINED_FROM_ANDROID
#define variable x
#elif
#define variable y
#endif
其他的解決辦法是我將創建兩個共享庫,一個是variable = x,另一個是variable = y,並在android代碼中動態加載它。
PLz建議。
RGDS, SAURABH