AndreyT wrote:Ситуация, когда автор постановки задачи сам толком не знает правильного ответа, не является какой-то необычной, как прекрасно понимают все участники технических дискуссий.
.. кроме автора постановки задачи
SVK wrote:бесконечный цикл с i от 0, -1, -2, -3, .... (Точнее - цикл до переполнения с фиксированной точкой, обычно около 2^31 повторений, если кто доживет до этого счастливого момента).
starkiller wrote:AndreyT wrote:..как настоящий anal retentive педант сообщу, что если расценивать это именно как программу, а не как фрагмент кода, то решения не существует ..
Kак не существует ядро линукс и 99% софта написанного не в соответствии со стандартом (которым из??) языка C
starkiller wrote:AndreyT wrote:Ситуация, когда автор постановки задачи сам толком не знает правильного ответа, не является какой-то необычной, как прекрасно понимают все участники технических дискуссий.
.. кроме автора постановки задачи
starkiller wrote:AndreyT wrote:Не надо мешать в одну кучу абстрактные задачи на языке С и грязноватые эксперименты из гаража дядюшки Линуса.
Что же по вашему такое "язык C"? K&R?
Только официальных стандартов существует с десяток.
AndreyT wrote:K&R стандартом не является. K&R, как книга, - это "рассуждения у камина по следам конкретной реализации".
K&R ввёл следующие следующие особенности языка:
* записи (тип данных struct);
* длинное целое (тип данных long int);
* целое без знака (тип данных unsigned int);
* оператор += и подобные ему (старые операторы =+ вводили анализатор лексики компилятора Си в заблуждение, например, при сравнении выражений i =+ 10 и i = +10).
K&R C часто считают самой главной частью языка, которую должен поддерживать компилятор Си. Многие годы даже после выхода ANSI C, он считался минимальным уровнем, которого следовало придерживаться программистам, желающим добиться от своих программ максимальной портативности, потому что не все компиляторы тогда поддерживали ANSI C, а хороший код на K&R C был верен и для ANSI C.
KP580BE51 wrote:...
Code: Select all
struct S { int t; };
...
0x123->t = 5;
AndreyT wrote:
Мир, программирующий на С, сегодня программирует в подавляющем большинстве на C89/90. Какие-либо местечковые диалекты C89/90 являются не более чем недоделанным/урезанными/расширенными и т.п. реализациями C89/90 и именно так себя и позиционируют.
starkiller wrote:AndreyT wrote:Кто-нибудь из присутствующих программировал на таком C? А это и есть настоящий K&R.
Кто-нибудь из присутствующих использует коаксиальный кабель Ethernet (10BASE2)? Нет? Тогда это уже в вашем понимании не стандарт? А стандарт остался "ровно один" - тот который вы используете.
starkiller wrote:AndreyT wrote:
Мир, программирующий на С, сегодня программирует в подавляющем большинстве на C89/90. Какие-либо местечковые диалекты C89/90 являются не более чем недоделанным/урезанными/расширенными и т.п. реализациями C89/90 и именно так себя и позиционируют.
Вы о каком мире говорите? Такое ощущение что вы где то работаете в академических кругах или на консалтерскую контору. У них популярно программирование на "стандартном" С. Мир в основном пишет под GCC (что уж стандартным в вашем понимании C никак не назовешь) и других "местечковых диалектах".
starkiller wrote:AndreyT wrote:Кто-нибудь из присутствующих программировал на таком C? А это и есть настоящий K&R.
Кто-нибудь из присутствующих использует коаксиальный кабель Ethernet (10BASE2)? Нет? Тогда это уже в вашем понимании не стандарт? А стандарт остался "ровно один" - тот который вы используете.
starkiller wrote:Это так. Но изначально Вы говорили о стандартном С а не стандартах на язык С. Это согласитесь не одно и то же.
starkiller wrote: Это все же по дизаину язык полусистемный (идеален для написания ОС и драйверов) и других достоинств у него нет, поэтому критерии его выбора часто коррелируют с привязкой к конкретной платформе с целью выжaть побольше из ее нестандартности.
Code: Select all
main()
{
int i, N=20;
for(i =40 ; i < N ; i--)
printf("*");
}
vzhik wrote:Code: Select all
main()
{
int i, N=20;
for(i =40 ; i < N ; i--)
printf("*");
}