Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.07.2019, 18:24   #1
Techno123
Новичок
 
Регистрация: 06.07.2019
Сообщений: 3
Репутация: 10
По умолчанию "Использование функции, возвращающей функцию, не допускается"

Добрый день!
Нужна ваша помощь в разборе ошибки. Имеется 3 файла:

main.cpp:
Код:
#include "stdafx.h"
#include "ssq.h"
#include <windows.h>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
	system("pause");
	return 0;
}
ssq.h
Код:
typedef bool (*func)();
ssq.c
Код:
#include "ssq.h"
Ругается на typedef bool (*func)();
Название: 2019-07-06_16-51-02.png
Просмотров: 85

Размер: 5.5 Кб
В чём может быть проблема?
Компилируется (VS 2013), если заменить bool на void или если убрать #include "ssq.h" в ssq.c.
Techno123 вне форума   Ответить с цитированием
Старый 06.07.2019, 19:38   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,873
Репутация: 1915
По умолчанию

А если так:
typedef bool *func();
waleri вне форума   Ответить с цитированием
Старый 06.07.2019, 21:34   #3
Techno123
Новичок
 
Регистрация: 06.07.2019
Сообщений: 3
Репутация: 10
По умолчанию

Вообщем, решение найдено.
В C нет типа bool, а чтобы заработало, надо либо заменить на int, либо подключить #include <windows.h> и заменить на BOOL.
Techno123 вне форума   Ответить с цитированием
Старый 06.07.2019, 21:38   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,651
Репутация: 2631
По умолчанию

А причем тут С, если у вас iostream подключен?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 06.07.2019, 21:50   #5
Techno123
Новичок
 
Регистрация: 06.07.2019
Сообщений: 3
Репутация: 10
По умолчанию

У меня подключён C-файл. В реальности это C-библиотека, но я её максимально обрезал, чтобы задать вопрос. Теперь ошибка исправлена и всё собирается.
Techno123 вне форума   Ответить с цитированием
Старый 07.07.2019, 01:39   #6
_Bers
Профессионал
 
Регистрация: 16.12.2011
Адрес: Москва
Сообщений: 2,317
Репутация: 1138
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А причем тут С, если у вас iostream подключен?
судя по наличию:
Цитата:
Сообщение от Techno123 Посмотреть сообщение
#include "stdafx.h"
это - проект вижуал студии.


iostream подключается в файле main.cpp
msbuild определяет его как файл с++

а вот файл ssq.c msbuild определяет как сишный.

в языке си нет типа bool
отсюда и ошибка.
_Bers вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 15:23
Использование меню "Удалить","Вставить","Вырезать" в combobox Александр1459 C++ Builder 7 07.05.2016 20:57
Использование функции из последнего модуля. Объявление модулей типа "паровозиком" EnMac Общие вопросы Delphi 7 12.11.2013 21:06
Использование функции "если" exel (разность чисел по условию) Alex252 Помощь студентам 3 20.05.2012 14:46
Использование функции "поиск решения" tobatoc Microsoft Office Excel 1 02.02.2010 16:47


17:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.