[an error occurred while processing this directive]
По стандарту языка СИ int main(void) либо int main(int argc, char *argv[]) остальное ересь
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
ВеС
20 января 2006 г. 16:17
В ответ на:
При разработке компилятора СИ гораздо больше ебли, чем при разработке компилятора ПАСКАЛЯ из-за бОльшей "контестозависимости" его грамматики. Из-за этого компилятор ПАСКАЛЯ в принципе гораздо более "быстродействующий" и простой, так как надо делать меньше операций поиска и сравнения (перебора). Например, что мешало сделать в СИ конструкцию: main ():void . Нет сделали void main (). Казалось бы, какая на х.. разница . Для "писателей" на языке почти никакой. А вот для
отправлено Доктор ТуамОсес 20 января 2006 г. 15:51
Составить ответ
|||
Конференция
|||
Архив
Ответы
А я для AVR постоянно пишу void main(void) потому как вообще не представляю,
—
_Bill
(20.01.2006 16:37
193.233.83.90
, 124 байт)
Это в версии 2.28. Все более поздние принимают только int main().
—
Михаил Е.
(20.01.2006 17:08
81.13.30.10
,
пустое
)
А я сейчас на 3.20C перешел. Все проходит.
—
_Bill
(20.01.2006 17:14
193.233.83.90
,
пустое
)
Да, я ошибся. Последняя версия где это проходит - 3.20D.
—
Михаил Е.
(20.01.2006 17:27
81.13.30.10
,
пустое
)
4.11a - void main(void) кушает без проблем
—
F8
(20.01.2006 17:37
213.130.22.7
,
пустое
)
У меня предупреждение выдает.
—
Михаил Е.
(20.01.2006 17:53
81.13.30.10
,
пустое
)
Более новыми я еще не пользовался. Но, видимо, дело к тому идет.
—
_Bill
(20.01.2006 17:32
193.233.83.90
,
пустое
)
Пока советую погодить. Я жалею, что перешел с 3.20D.
—
Михаил Е.
(20.01.2006 17:55
81.13.30.10
,
пустое
)
В смысле IAR 3.20C ? Вроде на GCC 3.4 такого не наблюдается...
—
(:{)
(20.01.2006 17:25
200.172.36.198
,
пустое
)
Да, да. Именно IAR.
—
_Bill
(20.01.2006 17:28
193.233.83.90
,
пустое
)
GCC- шный компилер для AVR на void main... будет материться до "потери пульса"...
—
(:{)
(20.01.2006 16:45
80.192.173.144
,
пустое
)
У меня не матерится. -Wno-main
—
ReAl
(20.01.2006 17:47
62.244.22.94
,
пустое
)
Встречался я с этим. Прямо полиция нравов какая-то. Но, с другой стороны, там столько всего наворочено, что
—
_Bill
(20.01.2006 16:49
193.233.83.90
, 52 байт)
Ну так ведь на МК (AVR в данном случае) в буквальном смысле натянули кросс-копмилер GCC... Ну а если это кросс-компиллер то и оъявление функции main должно быть идеентичным для всех платформ.
—
(:{)
(20.01.2006 16:59
80.192.173.144
,
пустое
)
Это то как раз понятно.
—
_Bill
(20.01.2006 17:05
193.233.83.90
,
пустое
)
Это не полиция нравов. Это соответствие стандарту. В стандарте сказано "shall" про возврат int'а.
—
SM
(20.01.2006 16:56
81.94.147.99
,
пустое
)
Так я об этом и говорю. С одной стороны блюдут чистоту стандарта, а с другой ...
—
_Bill
(20.01.2006 17:02
193.233.83.90
,
пустое
)
Хотя... Потом сказано нечто другое (о чем я собственно говорил ниже) :) Бардак! (+)
—
SM
(20.01.2006 17:02
81.94.147.99
, 458 байт)
Ну естественно не важно, как объявлена функция, если из нее нет выхода :)
—
SM
(20.01.2006 16:40
81.94.147.99
,
пустое
)
Не все остальное. Еще main(int argc, char** argv, char** env);
—
SM
(20.01.2006 16:29
81.94.147.99
,
пустое
)
Правда это не стандартно, но в стандарте дана некая вольность о входных аргументах. Чего не скажешь о возврате int'а.
—
SM
(20.01.2006 16:59
81.94.147.99
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru