Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2019, 17: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, 18:38   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

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

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

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

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

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


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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Использование меню "Удалить","Вставить","Вырезать" в combobox Александр1459 C++ Builder 7 07.05.2016 19: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 15:47