Форум программистов, компьютерный форум CyberForum.ru

компилируется синтаксически НЕПРАВИЛЬНЫЙ код - C++

Восстановить пароль Регистрация
 
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
09.08.2012, 20:05     компилируется синтаксически НЕПРАВИЛЬНЫЙ код #1
То ли я дурак, то ли что. Есть файл main.c

C++
1
2
3
4
5
#include <windows.h>
int main() {
 int x= 'VTIB'; //хахахаха
 return 0;
}
Инсталлируемм MSVS 2010, компилируем из командной строки, напрмер так:
Пуск-> программы -> MSVS 2010-> VIsual Studio Tools-> командная строка VS 2010

Далее будучи в этой командной сроке идём в папку с файлом указанного содержания

Bash
1
cd "Путь к файлу"
А теперь компилим;

Bash
1
cl main.c
На выходе в папке, в которую мы зашли, файлы main.exe и main.obj

++++++++++++++++++++++++++++++++++++++++++++++++++=

Кто-нибудь может объяснить, что всё это значит?

Добавлено через 11 минут
На всякий случай проверил все *.h файлы не предмет наличия "VTIB", нет такой строки!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2012, 20:05     компилируется синтаксически НЕПРАВИЛЬНЫЙ код
Посмотрите здесь:

C++ Код не компилируется
Не компилируется код C++
Неправильный код C++
В формате .cpp код компилируется, а в .c не компилируется C++
Компилится синтаксически неверный код C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.08.2012, 20:08     компилируется синтаксически НЕПРАВИЛЬНЫЙ код #2
C++
1
2
3
4
5
6
7
int main()
{
  int x = 'VTIB';
  cout << "x = " << hex << x << endl;
  cout << hex << (int)'V' << (int)'T' << (int)'I' << (int)'B' << endl;
  return 0;
}
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
09.08.2012, 20:10     компилируется синтаксически НЕПРАВИЛЬНЫЙ код #3
В стандарте описана эта особенность (2.13.2/1). Если символьный литерал содержит больше одного символа, то он имеет тип int и его трактовка и значение оставляются на усмотрение компилятора. GCC вот склеивает эти символы, например.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.08.2012, 20:16     компилируется синтаксически НЕПРАВИЛЬНЫЙ код #4
mingv только предупреждение выдаёт: multi-character character constant [-Wmultichar]. MSVS 2010 больше четырёх символов не пропускает. mingv - пропускает :
C++
1
2
3
4
5
int main()
{
double x = 'ABCDIFGHIJKLMNOPQRSTUVWXYZ';
return 0;
}
Yandex
Объявления
09.08.2012, 20:16     компилируется синтаксически НЕПРАВИЛЬНЫЙ код
Ответ Создать тему
Опции темы

Текущее время: 08:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru