Так что я обычно программирую в java и иди, поэтому мне жаль мое невежество, я изучил базовые c и C++. Однако, играя с JNI, я наткнулся на этот код C.C typedef, указывающий на функцию [c синтаксис]
(*env)->ReleaseStringUTFChars(env, javaString, nativeString);
Мне было интересно, почему (* env) указывает на функцию. По моему пониманию, env - это просто структура и в C. Функции не зависят от переменной, как то, как классы работают на C++ и JAVA.
Я что-то пропустил в C, который позволяет функциям только для того, чтобы стрелять для структуры?
Вид как в Go
type House struct { }
func (h House) GetHouseName() string { } //method defined outside of struct, but works on House
К сожалению, я не знаю, как слово, что я ищу для вас Google не действительно оказался много, и книги, которые я заказанные на C обыкновение был в до следующей недели.
Спасибо за помощь!
Вы правильны в замечании, что функции C не несут неявную область или 'this' объект вокруг. Вот почему вам нужно явно передать 'env' в качестве первого параметра в вызове метода (в большинстве языков OO это произойдет неявно) – hugomg