LINUX.ORG.RU

История изменений

Исправление Isur, (текущая версия) :

Если указатели у тебя вызывают проблемы то ни о чём кроме учебных >языков речи не идёт. И хотя языки без указателей есть, но (если >это не совсем скриптота бесполезная типа баша) во всех них есть >какие-то их аналоги, более или менее явные. Так что указатели >понимать надо.

Со скриптотой всё просто, я с PHP начал, а у него синтаксис С-подобный, поэтому когда выбирал компилируемый язык, то выбор поначалу пал на C++.

С указателями в принципе понятно. Чтобы передать некий объект в качестве параметра функции, нужно при вызове функции передать ей указатель на этот объект. Вот например есть строки как и в любом языке, строку можно описать как указатель на первый символ, то есть char*, а можно описать и как объекты string либо wstring, а ещё сторонние библиотеки могут иметь собственные указательные типы для работы со строками. Мне было бы удобнее писать просто string, а тонкости чтобы додумывал компилятор.

А вот с callback-функциями вообще не понятно как их писать и как вообще прийти к их пониманию, вот допустим хочу я поработать с библиотекой sqlite3, там такая функция есть:

int sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**), void *, char **errmsg);

где 3-й параметр - callback-функция, обрабатывающая результат SQL-запроса, допустим мне нужно, чтобы результат выводился в переменную, ну и всё - тупик.

Исправление Isur, :

Если указатели у тебя вызывают проблемы то ни о чём кроме учебных >языков речи не идёт. И хотя языки без указателей есть, но (если >это не совсем скриптота бесполезная типа баша) во всех них есть >какие-то их аналоги, более или менее явные. Так что указатели >понимать надо.

Со скриптотой всё просто, я с PHP начал, а у него синтаксис С-подобный, поэтому когда выбирал компилируемый язык, то выбор поначалу пал на C++.

С указателями в принципе понятно. Чтобы передать некий объект в качестве параметра функции, нужно при вызове функции передать ей указатель на этот объект. Вот например есть строки как и в любом языке, строку можно описать как указатель на первый символ, то есть char*, а можно описать и как объекты string либо wstring, а ещё сторонние библиотеки могут иметь собственные указательные типы. Мне было бы удобнее писать просто string, а тонкости чтобы додумывал компилятор.

А вот с callback-функциями вообще не понятно как их писать и как вообще прийти к их пониманию, вот допустим хочу я поработать с библиотекой sqlite3, там такая функция есть:

int sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**), void *, char **errmsg);

где 3-й параметр - callback-функция, обрабатывающая результат SQL-запроса, допустим мне нужно, чтобы результат выводился в переменную, ну и всё - тупик.

Исходная версия Isur, :

Если указатели у тебя вызывают проблемы то ни о чём кроме учебных >языков речи не идёт. И хотя языки без указателей есть, но (если >это не совсем скриптота бесполезная типа баша) во всех них есть >какие-то их аналоги, более или менее явные. Так что указатели >понимать надо.

Со скриптотой всё просто, я с PHP начал, а у него синтаксис С-подобный, поэтому когда выбирал компилируемый язык, то выбор поначалу пал на C++.

С указателями в принципе понятно. Чтобы передать некий объект в качестве параметра функции, нужно при вызове функции передать ей указатель на этот объект. Вот например есть строки как и в любом языке, строку можно описать как указатель на первый символ, то есть char*, а можно описать и как string либо wstring, а ещё сторонние библиотеки могут иметь собственные указательные типы. Мне было бы удобнее писать просто string, а тонкости чтобы додумывал компилятор.

А вот с callback-функциями вообще не понятно как их писать и как вообще прийти к их пониманию, вот допустим хочу я поработать с библиотекой sqlite3, там такая функция есть:

int sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**), void *, char **errmsg);

где 3-й параметр - callback-функция, обрабатывающая результат SQL-запроса, допустим мне нужно, чтобы результат выводился в переменную, ну и всё - тупик.