我在我的应用程序中出于数学原因使用了许多静态常量(这些参数应该只是开发人员调整而不是用户)。
在NDK方面,我有一个包含所有这些常量值的头文件(.h)。同样,在Java方面,我有一个跟踪相同变量(复制)的类。
是否有一个地方(一个文件)我可以存储这些常量以供Java和C ++使用?也许类似于XML文件,所以开发人员只需调整那里的常量?
如果是这样,我应该如何正确实施它(获取)。
答案 0 :(得分:0)
请谨慎使用下面的解决方法,但这可能会为您节省一些开发工作。
从一个简单的Java类开始:
package com.example.hellojni;
public class Settings {
public final static int ANSWER = 42;
}
这是 UseSettings.h :
#pragma once
#define package struct { struct { bool hellojni; } example; } com = {{true}}; static bool com_example_hellojni_Settings =
#define public
#define final const
#define class struct
#include "../java/com/example/hellojni/Settings.java"
;
#undef class
#undef final
#undef public
#undef package
现在您可以在C ++文件中编写类似
的文件#include "UseSettings.h"
int answer = Settings::ANSWER;
这个解决方案可能会被调整以适用于C99,但我没有付出足够的努力。
类似的方法可以应用于简单的枚举:
package com.example.hellojni;
public enum Test {
test1,
test2,
test3
}
#define public
#define package static struct { struct { bool hellojni; } example;} com {true}; static bool com_example_hellojni_Test =
#include "…/Test.java"
#undef public
#undef package