Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для alexey23
0 / 0 / 0
Регистрация: 15.08.2016
Сообщений: 6

Компилятор не принимает объявление указателя на функцию

15.08.2016, 13:47. Показов 2442. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Портирую библиотеку коннектора на си для tarantool. Код целиком тут.
Туллчейн - cygwin - cmake - clion.

При сборке возникает две ошибки отсылающие к одному месту.
Коды ошибок

In file included from ../tarantool-c-master(1)/tnt/tnt_buf.c:37:0:
../tarantool-c-master(1)/include/tarantool/tnt_reply.h:48:18: error: expected declaration specifiers or '...' before '*' token
typedef ssize_t (*tnt_reply_t)(void *ptr, char *dst, ssize_t size);
_______________^
../tarantool-c-master(1)/include/tarantool/tnt_reply.h:129:37: error: unknown type name 'tnt_reply_t'
tnt_reply_from(struct tnt_reply *r, tnt_reply_t rcv, void *ptr);
______________________________^

Флаги сборки
-fPIC -Wall -Wextra -std=gnu99 -D__USE_XOPEN -O0 -g3 -ggdb3


Строка на которую ругается:
C++
1
typedef ssize_t (*tnt_reply_t)(void *ptr, char *dst, ssize_t size);
Причем вторая ошибка находится в том же файле, что и объявление.
Не понимаю почему компилятор не понимает определение типа.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.08.2016, 13:47
Ответы с готовыми решениями:

Компилятор принимает integer за real при помещении его в объявление цикла
Собственно, почему это происходит и как написать правильно? Ошибка указывает на (minn + 1) в 52 строчке. //Определить, сколько нулей...

FORTRAN77, компилятор принимает logical функцию за real
Здравствуйте. Сразу что бы не было вопросов: вынужден писать именно на 77-ом стандарте по требованию преподавателя и программы. Столкнулся...

Как сделать функцию от указателя на класс и указателя на метод?
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод. Обращаться к классу нужно именно по указателю,...

6
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
15.08.2016, 14:02
alexey23, Что за тип ssize_t? Где он определен? М.б. вы не подключили нужный хедер?
0
 Аватар для alexey23
0 / 0 / 0
Регистрация: 15.08.2016
Сообщений: 6
15.08.2016, 14:10  [ТС]
На данный момент он объявляется в папке с инклудами Cigwin - /sys/types.h

C++
1
2
3
4
#ifndef _SSIZE_T_DECLARED
typedef _ssize_t ssize_t;
#define _SSIZE_T_DECLARED
#endif
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
15.08.2016, 14:25
Лучший ответ Сообщение было отмечено alexey23 как решение

Решение

Цитата Сообщение от alexey23 Посмотреть сообщение
На данный момент он объявляется в папке с инклудами Cigwin - /sys/types.h
А он подключен? попробуйте перед строкой с ошибкой вставить, например, typedef size_t ssize_t.
1
 Аватар для alexey23
0 / 0 / 0
Регистрация: 15.08.2016
Сообщений: 6
15.08.2016, 15:12  [ТС]
avgoor, благодарю за наводку.
Не сразу, но начал собираться.
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
15.08.2016, 15:30
alexey23, Только ssize_t - это signed size_t, не надо его через size_t определять - это неправильно. Лучше уж через std::ptrdiff_t.
1
 Аватар для alexey23
0 / 0 / 0
Регистрация: 15.08.2016
Сообщений: 6
15.08.2016, 16:08  [ТС]
DrOffset, Хорошо, учту при отладке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.08.2016, 16:08
Помогаю со студенческими работами здесь

Объявление указателя на структуру в объявлении структуры
struct node { int data; struct node * next; }; Зачем может понадобится такое объявление?

Как грамотней писать объявление указателя?
Ну собственно сабж. int* a; или int *a; Куда Фен Шуй рекомендует звёздочку ставить ? :)

Объявление глобального указателя всего проекта
Здравствуйте! Программа состоит из нескольких модулей. В одном из модулей написан класс, объект которого используется в других модулях. Как...

Объясните объявление указателя на объект класса
Доброго времени суток! Подскажите, пожалуйста, что означает данная строчка? B *b; B - это класс. *b - указатель....

Компилятор не принимает R.id.background
По идее прога должна менять фон на мои картинки при нажатии на кнопки, код взяла с какого-то сайта, но вот проблема - компилятор не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru