Тема: Помилка синтаксическая ошибка: __declspec(noreturn)

Доброго дня, гарного настрою! Раптом помилка.

Ошибка    25    error C2059: синтаксическая ошибка: __declspec(noreturn)    C:\Documents and Settings\Димон\Рабочий стол\Всяке\Порівнювач\Проект\Golovna.cpp    126    1    Проект


void __cdecl Zavershatel(int Pomylka)
{
  if ( Pomylka )
    Ogoloshuvats(Sklad, Pomylka, 0);
  Ogoloshuvats("Try `%s --help' for more information.", intMyproSunemo, 0);
  exit(1);
}

Як, абсолютно правильно написати таку функцію, оголосити - позначити?

Що б взагалі все шляхом? Проэкт виндовс.

2

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

Пропоную створити в кошику підрозділ "потрібна допомога телепатів" і складати туди такі теми.

3 Востаннє редагувалося Дмитро-Чебурашка (18.07.2015 19:20:33)

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

На функцію визуал студія лається ось цій ось помилкою!! Що ж не так?

Функція, помилка. Проєкт win32.   До речі, спасибі за таку швидку відповідь, хоч яку.

4 Востаннє редагувалося Дмитро-Чебурашка (18.07.2015 16:23:48)

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

Винен. Ось функція. Вона не компилиться ось з такою ось помилкою. Питання як?


З функції не іржіть.

5

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

1. В якому саме рядку компілятор вказує помилку? У вас рядки пронумеровані 1-7, а помилка в рядку 126.
2. Якщо помилка в першому рядку з наведених, то що йде перед ним? Ви не в курсі, що вирази в C++ завершуються не знаком нового рядка, і, відповідно, через помилку можуть зчеплятися?
3. Чи існує прототип цієї функції в іншому місці?
4. Чи використовуєте ви десь __declspec(noreturn)?
5. Чи почитали ви на MSDN, що таке цей __declspec(noreturn)?
6. Яке з попередніх питань неочевидне?

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

1. Помилка у першому рядку.  Тобто це функція. 

2 і 3    Якщо створити прототип цієї функції в іншому місці лається вже саме на н7ього!

4  Я ниде  цей  __declspec(noreturn) не використовую й не дуже знаю як. Це примха компілятора! А ось ви скомпилюйте
цю в майні.

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

І звичайно ж треба буде почитати, звичайно ж!

8

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

Дмитро-Чебурашка, у мене таке враження, що Ви тут для того, щоб безґлузді запитання задавати. Що за мету Ви маєте - можу тільки здогадуватись. Форум пожвавлювати? Ви - по завданню адміністрації форума?

9

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

Ет, пане, це ви Трусика не застали. Ото був пожвавлювач... але забанили його.

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

Я без жодних хитрощів додав __declspec (noreturn) прямо перед функцією (перед усім її описом)
і все скомпілювалося.

11 Востаннє редагувалося koala (21.07.2015 22:10:50)

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

Гадаю, правильніше було б знайти, яка комбінація опцій компілятора призводила до такої поведінки.
__declspec (noreturn) каже компілятору, що з функції повернення вже не буде (відбудеться вихід) і, таким чином, компілятор може зекономити кілька байт на коді повернення. Але це нестандартна фішка.

Re: Помилка синтаксическая ошибка: __declspec(noreturn)

Спасибі!! Так, нестандартна. Я сам вважаю за краще завжди розібратися. Найправильніша думка!

компілятор може зекономити кілька байт на коді повернення - може компілятор і правий!
Хоча на мій розсуд там мало бути максимум попередження.

Я вже пізніше мабуть розберуся. Скомпілювалося - і гаразд. Запам ятаю.