android функция визуализации - PullRequest
0 голосов
/ 23 марта 2020

Я делаю свой первый шаг с Renderscript, я застрял с базовыми c вещи ... Как определить локальную функцию и вызвать ее в функции ядра. Мне не нужна эта функция, чтобы ее можно было вызвать. это просто для того, чтобы сделать мой код более читабельным путем разделения задачи.

uint8_t RS_KERNEL invert(uint8_t in, uint32_t x, uint32_t y) {
  foo(NULL);
  return in;
}

void foo(char* m){


}

Кто-то может сказать мне, почему это не компилируется? Поскольку я ничего не нашел, возможно, невозможно использовать функцию внутри ядра или даже невозможно определить не вызываемую функцию.

(я пытаюсь использовать функцию без аргумента, с типом возврата и т. Д., Но как только Я хочу вызвать функцию внутри ядра, компиляция не удалась ...)

Спасибо за ваши знания.

1 Ответ

0 голосов
/ 23 марта 2020

Я отвечаю себе позором:)

- во-первых, если вы не хотите, чтобы функция вызывалась, вам нужно использовать ключевое слово stati c.

- во-вторых, Java сделал меня ленивым. Конечно, это не могло работать, я использую функцию message () без предварительного объявления или определения. Поэтому вам нужно поместить объявление (или определение), прежде чем использовать функцию. Ради бога, это C, а не Java :). Я не могу поверить, мне потребовалось 2 дня, чтобы понять это.

static void foo(char* m){


}

uint8_t RS_KERNEL invert(uint8_t in, uint32_t x, uint32_t y) {
  foo(NULL);
  return in;
}
...