输入' byte'无法解决

时间:2014-04-26 23:09:30

标签: android c++ eclipse android-ndk

我刚刚将NDK安装到Eclipse上,但我遇到了一些麻烦......

以下是代码:

#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库但没有成功。

2 个答案:

答案 0 :(得分:1)

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

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

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

但这不是标准。它是&#34; BYTE&#34;而不是&#34;字节&#34;。

答案 1 :(得分:0)

&#39;字节&#39;在标准C或C ++中不存在,如果您的所有代码都依赖于,请使用&#39; jbyte&#39;相反,它在此标头中定义,并映射到8位无符号整数类型。

或者,您可以定义&#39; byte&#39;使用typedef,如:

typedef unsigned char byte;

确保所有来源都使用/解析此内容(例如将其放在共享标头中)。

更正确的方法是:

#include <inttypes.h>

typedef uint8_t byte;

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

(从技术上讲,&#39; char&#39;在一些非常奇怪的平台上可能超过8位,但它们都不会被Android定位)。