![]() |
|
Модераторы: bsa |
![]()
|
|
| Compositum |
|
||||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Читаю Кернигана и Ритчи.
Выкладываю свой код, посредством которого смотрю, что подразумевается под "значащими" символами:
Результат работы кода:
Т.о. при первичной инициализации значения были присвоены верно (100 и 200). Но когда я пытаюсь второй переменной присвоить значение 400, оно по факту присваивается первой переменной. Если я нигде не ошибся, то не понимаю, почему было не задать в стандарте C89/C99 ограничение на длину имён переменных, если существует опасность неверного присваивания значений? Понимаю, что вопрос не по адресу, поэтому он скорее риторический... |
||||||
|
|||||||
| alexvs11 |
|
|||
|
hell is here ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 21.8.2010 Репутация: 2 Всего: 10 |
видимо нечто вроде undefined behavior
а какой компилятор, gcc нормально отработал |
|||
|
||||
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
я разве писал, что компилятор не отработал? Всё прекрасно скомпилировалось без замечаний. Компилятор - gcc. Это сообщение отредактировал(а) Compositum - 11.5.2011, 21:16 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
может стоит пользоваться чем то более свежом чем 20 летняя версия ? Добавлено через 28 секунд |
|||
|
||||
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Я изучаю С. По этому языку всего два стандарта, кои я и обозначил в первом посте. В gcc полностью реализован только C89. Стандарт C99 в нём реализован не полностью. Кроме того, книга обозначенных мною авторов (Кернигана и Ритчи) по C89. Сейчас я учу C89 и это не обсуждается, C99 будет следующим. |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 5 Всего: 160 |
А можно всё-таки обсудить? -------------------- |
|||
|
||||
| Compositum |
|
|||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Мне интересен этот язык, поскольку на нём написаны Linux API и WinAPI. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
тогда принимайте его таким каким он есть и.. перейдя к ограничением на внешние имена, увидите что 31 еще ой как много Добавлено через 46 секунд ну а причина по сути лежит не в компиляторе, а линкере.. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
странный у тебя компилятор...
MSVC 2008:
Вот, насколько я знаю, gcc 4.6: http://liveworkspace.org/code/25de2e5e1c2e...431edc9a62eea39 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| asmdzen |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 28.11.2010 Репутация: 3 Всего: 5 |
||||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
не причина ошибки, а причина почему в стандарте ввели ограничение на "длину имени" :
которое в последствии изменилось на :
поэтому вышеприведенный пример на современных компиляторах ошибки не даст.. |
||||||
|
|||||||
| Compositum |
|
||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Я недавно показывал в одном из своих топиков версию имеющегося у меня компилятора:
Как видим - он и есть современный. |
||||
|
|||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
да помню. там была разница в том, что ты компилируешь Си, а не Си++, однако, вот gcc на Си http://liveworkspace.org/code/3ed8607028bf...4f1670e97ec3f97 на MSVC 2008 при компиляции Си (а не Си++) то же самое... Может у тебя какие-то хитрые настройки компилятора ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Compositum |
|
||||
|
Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
я ничего нигде не изменял, ибо уровень не тот - только учусь самому С, в настройки компилятора пока не лезу (рано). |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
но при компиляции же задаете -std=c89 (c90) или -ansi .. Это сообщение отредактировал(а) mes - 12.5.2011, 10:05 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |