无法解析类型 'byte'

Type 'byte' could not be resolved

本文关键字:byte 类型      更新时间:2023-10-16

我刚刚在Eclipse上安装了NDK,但遇到了一些问题。。

这是代码:

#include <jni.h>
#include <stdlib.h>
#include <stdio.h>
void deleteFile(const char *fileName) {
    remove(fileName);
}
void writeFile(const char *fileName, byte array) {
}

但是出了问题。。我得到了这个错误:

jni/[projectName].cpp:9:38: error: 'byte' has not been declared

字节无法解析!这是一个大问题,因为我绝对需要那种类型。。我必须用它把数据写入文件!

我遵循了很多教程,我还尝试导入我所有的MinGW库,但没有成功。

byte不是标准的C或C++类型。。。它可能是非标准头文件中的typedef。你在哪里见过那种类型的代码?你想用const unsigned char *吗?

我知道Visual Studio定义了BYTE类型:

typedef unsigned char BYTE;   // 8-bit unsigned entity.
typedef BYTE *        PBYTE;  // Pointer to BYTE.

但这不是标准。它是"字节",而不是"字节"。

'byte'在标准C或C++中不存在,如果所有代码都依赖,请使用'jbyte',它在该标头中定义,并映射到一个8位无符号整数类型。

或者,您可以用typedef定义"byte",如下所示:

typedef unsigned char byte;

并确保所有源都使用/解析它(例如,将它放在共享标头中)。

一个稍微更正确的方法是:

#include <inttypes.h>
typedef uint8_t byte;

它在所有支持的Android平台上都是等效的,但需要额外的包含。

(从技术上讲,在一些非常奇怪的平台上,"char"可以超过8位,但它们都不会成为Android的目标)。