![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ZeusAtVingrad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.4.2006 Репутация: нет Всего: нет |
Компилю gcc'шником такой код:
Пока не оставил в одиночных кавычках по ОДНОМУ символу - компилер ругался. |
|||
|
||||
| Replicator |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 30.4.2006 Где: Outer Heaven Репутация: нет Всего: нет |
Ну и правильно! Апострофы служат для записи константного символа. В апострофах записывается символ - один символ и он имеет тип char. Ну как же в одном символе может быть 5 символов?!
--------------------
|
|||
|
||||
| ZeusAtVingrad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.4.2006 Репутация: нет Всего: нет |
Вот я об этом и спрашиваю: какие там "числ" и "числ."?
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
может
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
ZeusAtVingrad, еще раз: в Си++ в одиночные кавычки можно поместить только один символ (или escape-последовательность). Поскольку в исходном сообщении 'числ' у тебя все-таки скомпилировался (но не работал), я сделал вывод, что ты пишешь на чистом Си.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| ZeusAtVingrad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.4.2006 Репутация: нет Всего: нет |
Исходное сообщение вообще не я писал.
Я тут просто пытаюсь DESert'а на чистую воду вывести с его константами 'числ' и 'числ.' Типа вторая - не является константой int, а первая - является. Из-за того, что вторая - больше 4х байт, а первая - помещается в int. Я вот и пытаюсь выяснить: или я что-то пропустил в С/С++ или человек заблуждается. |
|||
|
||||
| Replicator |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 30.4.2006 Где: Outer Heaven Репутация: нет Всего: нет |
Вообще, С и С++ - это 2 разных языка и они могут вести себя по-разному.
В С++, в апострофах может находиться один символ и это будет константа типа char. С я не знаю, но если верить остальным, то в апострофах может находиться до 4 символов и это все является константой типа int. --------------------
|
|||
|
||||
| ZeusAtVingrad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.4.2006 Репутация: нет Всего: нет |
Ну уж в таких делах С и С++ ведут себя одинаково.
Я ж написал, что компилил gcc'шником (C-компилятор) - он на такие "константы" ругается. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Если не секрет, почему ты решил, что gcc - сишный компилер? (GNU Compiler Collection)
|
|||
|
||||
| ZeusAtVingrad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.4.2006 Репутация: нет Всего: нет |
Наверное потому что g++ - плюсовый.
В любом случае, и для C и для С++, 'abcde' - не является корректной символьной (хоть int хоть char) константой. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
ZeusAtVingrad, ладно, придется таки давить авторитетами
Стандарт ISO/IEC 9899:1999, известный как C99:
Потом идем сюда, ставим C99 mode и компилируем. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| NextAlex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.8.2005 Где: Украина, г. Одесс а Репутация: 2 Всего: 3 |
как минимум потому что в зависимости от составления makefile он компилирует код как код C или код C++ или Java и т.д. можешь посмотреть там где накопал название кроме того человек, который использует gcc не может не знать как составляется makefile... --------------------
Говорила мама: "Учись играть на скрипке". Не хотел носить ноты - будешь носить пианино ... |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Я не имел ввиду, что в gcc нет сишного компилера, я имел ввиду, что там есть и другие компилеры (в частности C++) и чем именно проверял ZeusAtVingrad - это ещё вопрос.
Кем считается? |
|||
|
||||
| ZeusAtVingrad |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.4.2006 Репутация: нет Всего: нет |
Чтобы откомилить файл с одной функцией main() безо всяких include - никаких makefile'ов не надо.
Достаточно: gcc test.c По поводу авторитетов: Я язык по книгам и на практике осваива(л,ю). Стандарты не читал. В книгах и на практике все char-константы состоят из ОДНОГО символа. И ещё вопрос: "Стандарт ISO/IEC 9899:1999, известный как C99" Он как соотносится с ANSI C? Не то чтобы это наезд, просто я как-то всё время слышал об ANSI C, а ISO/... не знаю. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Комитет ANSI теперь называется ISO, если я не ошибаюсь. А C99 - просто последний (на сегодня) стандарт C (есть ещё C8x, x - не помню, некоторые ориентируются на него, но данный момент в нём работает точно также).
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |