Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 36

Благодаря какому диалекту языка Си все заработало

08.10.2010, 14:13. Показов 3422. Ответов 18

Студворк — интернет-сервис помощи студентам
Здравствуйте. Написал вот такую вот программку.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]){
        setenv("TZ","America/Los_Angeles",1); 
    time_t curr;
        struct tm *myTime = NULL;
    char strTime[100];
    time(&curr);
    myTime = localtime(&curr);
    strftime (strTime, sizeof(strTime), "%Y.%m.%d. %H:%M:%S", myTime);
    printf("%s\n", strTime);
    exit(0);
}
Но получается,что это вовсе не СИ - setenv должен стоять после char strTime[100]. Но программа скомпилилась и заработала. Мне преподаватель задал вопрос: "Благодаря какому диалекту языка СИ все заработало?! Киньте ссылку на официальную документацию"
Кто-нибудь может кинуть ссылку?! Или хотя бы скажите где я могу это найти. Я подозреваю,что это можно еще с C89, но найти в документации не могу. Помогите, плиз
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2010, 14:13
Ответы с готовыми решениями:

вручную указал DNS и всё заработало, хм
Столкнулся с проблемой, понадобилось почистить комп и после скачки 3-4 антивирусов, один из них(Grindin Anti-Malware) обнаружил кучу...

Изменить код, чтобы всё заработало
Здравствуйте! Т.к ветки чистого js нету придется писать здесь)) Изучаю js, и на глаза попалась задачка которую не могу решить не могли бы...

По первой букве из оператора языка Си вывести, к какому типу вычислительного процесса он относится
По первой букве из оператора языка Си вывести, к какому типу вычислительного процесса он относится (разветвленный и циклический).

18
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
08.10.2010, 15:57
Dami, сам стандарт должен где-нибудь тут быть: http://www.open-std.org
В программе же по ANSI C 89 все переменные должны быть объявлены до первого вызова оператора или функции.
0
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 36
08.10.2010, 17:51  [ТС]
Это значит,что только благодаря С99 я смог объявить переменную после вызова функции,да?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
08.10.2010, 18:06
Цитата Сообщение от Dami Посмотреть сообщение
Это значит,что только благодаря С99 я смог объявить переменную после вызова функции,да?
В принципе - да, хотя у меня этот код вот так
Code
1
$ gcc -std=c89 -o america america.c
скомпилировался с тем же успехом. На каком-нибудь архаичном Borland Turbo c 3.0 может и не скомпилируется...
1
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
08.10.2010, 23:19
Тогда если добавить опцию -ansi,то по идее,скомпилироваться не должно?
0
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 36
09.10.2010, 10:23  [ТС]
Понятно,спасибо! Кстати, EASYBUDDA, у меня не открывается ваша ссылка =(
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.10.2010, 12:08
Цитата Сообщение от Dami Посмотреть сообщение
у меня не открывается ваша ссылка
поторопился немного, исправил.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.10.2010, 12:39
Лучший ответ Сообщение было отмечено как решение

Решение

По части того, какие диалекты и по каким опциям поддерживает gcc
http://gcc.gnu.org/onlinedocs/... #Standards

То, что gcc ест этот код с опцией -ansi или -std=c89 - это вовсе не означает, что код соответствует стандарту C89. Если запустить с дополнительной опцией -pedantic, то получим следующую ошибку, которая больше смахивает на истину

Code
1
2
3
$ gcc t.c -ansi -pedantic
t.c: In function 'main':
t.c:7: warning: ISO C90 forbids mixed declarations and code
Насколько я знаю, gcc никогда нормально не поддерживал стандарт C89, потому что даже с кучей опций он продолжает поддерживать конструкции типа __asm__, __typeof__ и т.п. - ради того, что это присутствует в системных инклюдах

Добавлено через 57 секунд
Цитата Сообщение от Evg Посмотреть сообщение
это вовсе не означает, что код соответствует стандарту C89
Я затрудняюсь сказать, что это означает, даже глядя на документацию

Добавлено через 10 минут
Кстати, ответ на изначальный вопрос - "благодаря языку C99"
3
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 36
10.10.2010, 11:06  [ТС]
Вы это в официальной документации нашли или просто опытным путем проверили?!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.10.2010, 12:34
"Это" - это что?
0
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 36
10.10.2010, 20:32  [ТС]
это - "Кстати, ответ на изначальный вопрос - "благодаря языку C99""
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.10.2010, 22:10
Цитата Сообщение от Dami Посмотреть сообщение
это - "Кстати, ответ на изначальный вопрос - "благодаря языку C99""
Скажем так, я знаю, что Си99 позволяет сие (но не помню откуда). Если я ничего не напутал.
1
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.10.2010, 04:18
Лучший ответ Сообщение было отмечено как решение

Решение

wiki. en -> C89. draft, C99. draft

есть ещё книжка K&R первой версии, она была выпущена до первого стандарта
вроде то, что она описывает, называется диалектом K&R

да, кстати об этом пишут на wiki, что долгое время спецификацией языка C считалось первое издание K&R

дальше
C1X
Main article: C1X

In 2007, work began in anticipation of another revision of the C standard, informally called "C1X". The C standards committee has adopted guidelines to limit the adoption of new features that have not been tested by existing implementations.
C1X -> C1X. draft (25 June 2010)

Добавлено через 11 минут
Цитата Сообщение от Dami
Мне преподаватель задал вопрос: "Благодаря какому диалекту языка СИ все заработало?! Киньте ссылку на официальную документацию"
открываешь C99 draft и там в Foreword перечисляются изменения, среди них "mixed ... "

Добавлено через 5 минут
setenv нестандартная
CONFORMING TO
4.3BSD, POSIX.1-2001.
3
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 36
11.10.2010, 15:20  [ТС]
Спасибо большое!!!!
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.10.2010, 17:54
Распределение кода и объявлений

В соответствии со Стандартом С89 все объявления, находящиеся внутри блока, должны предшествовать первому оператору кода. Но к Стандарту С99 это правило не относится. Рассмотрим, например, программу

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main(void)
{
  int i;
 
  i = 10;
 
  int j; // неправильно для С89; допустимо для С99 и C++
 
  j = i;
 
  printf("%d %d", i, j);
 
  return 0;
}
Здесь выражение

i = 10

находится между двумя объявлениями: переменной i и переменной j. Стандарт С89 такое не разрешает. Зато это вполне допускается в С99 (да и в C++ тоже). Возможность распределять объявления и код довольно широко используется в языке C++. Появление этой возможности в языке С облегчает написание кода, который можно использовать в средах обоих языков.
(с)Герберд Шилдт "Полный справочник по С"
Я тут про это прочитал...
0
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 36
13.10.2010, 11:04  [ТС]
Всем спасибо. Я ответил на поставленный мне вопрос. Можно закрывать тему
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
11.12.2011, 08:40
интересует информация по этому диалекту
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.12.2011, 09:11
msc-51
1
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
11.12.2011, 10:02
это вестимо. ищу полнее, книжечку заказал, даже скачать не нашел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2011, 10:02
Помогаю со студенческими работами здесь

Как допилить, что бы заработало: Дана последовательность целых чисел. Все нечетные элементы заменить нулем
/* 3. Дана последовательность целых чисел. Все нечетные элементы заменить нулем. */ #include &lt;iostream&gt; #include...

Каким образом благодаря регулярному выражению можно удалить все html теги с string?
Вот допустим у нас есть string , который считал html файл, и он выглядит например так: &lt;html...

Ура, заработало!
Всем здрасте! Заливаю joomla на денвер, все норм..., но при нажатии на пункт меню или при переходе по ссылке вылазит окно денвера:...

Как сделать, чтобы заработало?
onload=\&quot;$(this).val('').focus().val(' ')\&quot; &lt;textarea name=\&quot;comment\&quot; placeholder=\&quot;Сообщение\&quot; type=\&quot;textarea\&quot;...

Как подключить и чтобы заработало?
купил АОТ137А1, а в описании немогу сообразить как надо подключить... Да и принцип действия если есть возможность


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru