1 | ||||||||||||||||
Ошибка при компиляции под x64: "C++ requires a type specifier for all declarations"21.01.2016, 22:14. Показов 14058. Ответов 22
Метки нет (Все метки)
Хочу скомпелировать под 64, создаю тестовый проект (создаю всего одну функцию в отдельном юните). Под 32 все нормально, но вот под 64 на любую функцию ругается.
Unit 1
0
|
21.01.2016, 22:14 | |
Ответы с готовыми решениями:
22
Борьба с ошибкой "A type specifier is required for all declarations" Ошибка expected type-specifier before 'ptr_head' при реализации стека Ошибка "error C4430: missing type specifier" при работе с fstream Ошибка при компиляции 'Type-declaration character does not match declared data type.' Ошибка: expected type-specifier before 'ReadThread' |
21.01.2016, 23:22 | 2 | |||||
Сообщение было отмечено Dinkin как решение
Решение
А так?
0
|
Супер-модератор
|
|
22.01.2016, 12:12 | 6 |
Dinkin,
What's New in Delphi and C++Builder, ибо Clang
1
|
Супер-модератор
|
|
22.01.2016, 13:34 | 10 |
Заголовок функции обязан содержать тип возвращаемого значения. Где это происходит в твоем коде? Было бы сразу написано, что функция возвращает void - все было бы в порядке.
1
|
22.01.2016, 13:39 [ТС] | 11 |
несколько вопросов:
1) А если функция нечего не возвращает по логике? 2) если я хочу к примеру из функции вернуть строку, как правильно ее будет объявить, потому что для 64, я ка кто только не объявлял, мне или ошибку или варнинг пишет (притом для 32 вообще не к чему не придираться)..
0
|
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
|
|
22.01.2016, 14:10 | 13 |
Так void - это и есть такое положение (переводится как "пустышка"). А вот совсем без ничего - не годится; нарушение этикета.
1
|
22.01.2016, 14:14 [ТС] | 14 |
Почтальон, ну это ясень для 32, Вы так для 64 попробуйте и поймете, что этого явно ему мало)
nick42, Спасибо, век учись..может будете так любезны и еще объясните какую роль играет "__fastcall" ?
0
|
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
|
|
22.01.2016, 14:15 | 15 |
.. переводится как "быстрый вызов", но... сам хотел бы услышать компетентное мнение.
0
|
Супер-модератор
|
|
22.01.2016, 14:36 | 16 |
Чего мало? Написать void в качестве возвращаемого значения - мало? Не компилируется? Зачем тогда отметил вопрос решенным?
Такую же, как и любой другой спецификатор calling convention (соглашение о вызове): задает порядок передачи агрументов в функцию и ответственного за очистку стека по окончании работы функции
2
|
22.01.2016, 14:52 [ТС] | 17 |
так это был главный вопрос, вообще хотя бы запустить x64, а вот далее пошел разбор остальных вопросов. На самом деле я думал что для x64 все так же как и под x32.
. Все равно непонятно. Могли бы вы на пальцах объяснить как ее использовать..хотя бы на простом примере чем будет отличаться функция где указан "__fastcall" , от той где не указан. Добавлено через 9 минут Просто void добавить для возвращения строки вызывает варанинги под 64
0
|
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
|
|
22.01.2016, 15:11 | 20 |
Считается, что через регистры быстрее.
Визуально сравни 2 варианта, fastcall слева
2
|
22.01.2016, 15:11 | |
22.01.2016, 15:11 | |
Помогаю со студенческими работами здесь
20
Шаблон класса. Ошибка `missing type specifier` Ошибка C4430: missing type specifier - int assumed Incomplete type used in nested type specifier - Итерация по списку аргументов Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |