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

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

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


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

Добрый день!
Нужна ваша помощь в разборе ошибки. Имеется 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
В чём может быть проблема?
Компилируется (VS 2013), если заменить bool на void или если убрать #include "ssq.h" в ssq.c.
Techno123 вне форума Ответить с цитированием
Старый 06.07.2019, 19:38   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,047
По умолчанию

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

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

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

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

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


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

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") 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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS