0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 5
|
|||||||||||
1 | |||||||||||
setlocate и char xx[30]; - Не компилирует08.08.2011, 02:14. Показов 5765. Ответов 18
Метки нет (Все метки)
Имеем код C:
Но стоит добавить допусти char name[40]; вот так:
Подскажите знающие люди, в чем могут быть грабли. Заранее спасибо.
0
|
08.08.2011, 02:14 | |
Ответы с готовыми решениями:
18
Error: 'setlocate' was not declared in this scope Code::Blocks в определенном проекте не компилирует "tr1/shared_ptr.h", при этом в другом проекте компилирует! Char unsigned char signed char длинна Кааак char* to char или (char* запись в файл) |
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
|
|
08.08.2011, 02:31 | 3 |
msvc 2010 все скомпилировалось, оО
попробуйте сделать rebuild проекта.
0
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
08.08.2011, 04:17 | 5 |
Ну а что тут странного? В C89 переменные можно объявлять только в начале блока. Поменяйте местами char name[40] и setlocale().
Ну и про точки с запятой после инклюдов уже сказали, хотя это всего лишь предупреждения.
1
|
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 5
|
|
08.08.2011, 13:42 [ТС] | 6 |
Действительно, если поменять местами выдает
А можно по подробнее про С89? это я так понимаю стандарт? Я просто пишу по книги, и так большинство примеров пишут с учетом С99... P.S. Спасибо большое за ответы!
0
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
08.08.2011, 14:27 | 7 |
Да, предшественник C99 (есть ещё C90, но про него пишут, что отличий от С89 нет)
Да, в C99 переменные можно объявлять не только в начале. Можно взять компилятор с поддержкой C99 (или может быть нужно просто включить эту поддержку, например для GCC ключ -std=c99) Добавлено через 1 минуту Поддерживает ли 2010-я студия C99, и если да, то как включить — не знаю.
1
|
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 5
|
|
08.08.2011, 14:30 [ТС] | 8 |
У меня есть на второй машине Visual studio 2010 professional - и xCode в хакинтоше, они насколько я знаю поддерживают С99?
Хотя я честно говоря, думал что 2010 express тоже поддерживает.. Надо в настройках покопаться. Спасибо большое за ответы.
0
|
1 / 1 / 0
Регистрация: 03.06.2010
Сообщений: 61
|
||||||
08.08.2011, 17:46 | 9 | |||||
P.S. Твой вариант тоже компилировался удачно)
0
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
08.08.2011, 18:24 | 10 |
alemor, у тебя программа не на C, а на C++. Ничего удивительного, что она работает без проблем
0
|
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 5
|
|
08.08.2011, 19:05 [ТС] | 11 |
У вас С++) как уже сказали выше... Да и причину выяснили. Стандарт С89 а в С99 все работает.
Ну а "зачем", это просто кусок кода) который показывал суть проблемы. Весь код кидать нет смысла, много и не по делу было бы Всем спасибо за ответы и участие
0
|
Модератор
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,961
|
|
08.08.2011, 19:33 | 12 |
KuraevE, ANSI C99 кроме gcc компиляторов, никакие другие по-моему и не поддерживают. Но, если пользуетесь gcc (MinGW в винде), в самом стандарте С99 можно найти много полезного. У шилдта в "Полный справочник по С" есть неплохое описание нововведений этого стандарта, правда, не полное, и как применять, особо не написано, но общее представление даёт. Во всяком случае, когда будете в других книгах встречать, будете уже представлять, что к чему...
1
|
0 / 0 / 0
Регистрация: 08.08.2011
Сообщений: 5
|
|
08.08.2011, 19:47 [ТС] | 13 |
спасибо) Я пока читаю и изучаю "Язык программирования С. Лекции и Упражнения" 5е издание. Стивен Прат доступно очень. За неделю из не имеющего понятия об языке С, более менее понимающим себя чувствую.
0
|
17 / 18 / 1
Регистрация: 01.12.2010
Сообщений: 296
|
||||||
09.08.2011, 13:53 | 14 | |||||
Попробуйте использовать подобное:
0
|
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
|
|
09.08.2011, 16:45 | 15 |
0
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
09.08.2011, 16:49 | 16 |
Там ещё и другая проблема будет. В C89 нет <iostream> и wcout
0
|
Модератор
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,961
|
||||||
09.08.2011, 17:19 | 18 | |||||
В превых главах КиР вообще было
0
|
Higher
|
|
09.08.2011, 17:36 | 19 |
Вы про int что ли?
Так если не указывать тип main'a, то просто будет по умолчанию int. http://ru.wikipedia.org/wiki/%... %D0%B9_int
0
|
09.08.2011, 17:36 | |
09.08.2011, 17:36 | |
Помогаю со студенческими работами здесь
19
Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *" CONST_RETURN char *__cdecl strstr (const char *_Str, const char *_SubStr) Assigning from int to char[10] from char to char[10] (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |