c - 相同信息的不同 typedef

标签 c java-native-interface

我在编写一段代码时遇到了这个:

typedef jobject jthread;
typedef jobject jthreadGroup;

对于相似的条目,不同的typedef有什么意义?

最佳答案

它允许您为同一类型使用两个不同的名称。您(至少)有两个不同的原因想要这样做:

  1. 在代码中,您希望读者看到我们正在处理的数据类型。毕竟,“线程”不同于“线程组”,即使表示它们的底层类型不同。
  2. 能够在不影响另一种类型的情况下更改其中一种类型的类型。如果在稍后阶段,我们决定“jthreadGroup”最好是一种新类型,我们可以在不影响“jthread”的情况下更改它。

假设我们有一个小游戏,我们以整数类型计算分数。我们还有玩家数量:

typedef int ScoreCount;
typedef int PlayerCount;

稍后,我们决定我们只需要一个小数字,short 来计算玩家数量:

typedef short PlayerCount;

与使用“jobject”的想法相同,只是一种不同的基本类型,这可能使其易于理解。

关于c - 相同信息的不同 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15830629/

相关文章:

c - array[1][2] 和 array[1,2] 有什么区别?

ffmpeg - 在 android 上通过 ffmpeg 将 yuv 转换为 mp4

java - fatal error 的影响 - native 代码中发生崩溃

java - 使用 uinput 驱动程序创建虚拟多点触控设备

c - 两个二进制数异或的问题

c - 为什么我在 malloc 时遇到段错误?

c - C 中的加载结构

c++ - 如何优化高斯 pdf 的计算?

java - JNI 调用.NET dll

android - 应用程序因使用 ANativeWindow API 而崩溃