что-то мне наш спор начинает напоминать анектод про суровых сибирских мужиков и японскую бензопилу.
нормальный здравомыслящий программист в нормальном не сфарическом коде так никогда не напишет. даже если и напишет — компилятор он умный, он скажет. программист возьмёт и исправит.
эмулятор, кстати, давно написан, работает на x86, ARM и PPC. компилируется gcc или visual studio, естественно с оптимизацией (насколько я помню, ни одного ворнинга).
inlne asm использовать вредно. во-1 кроме x86 есть и другие архитектуры, а во-2, на современном процесоре писать руками код, лучше чем тот, который сгерерирует компилятор нецелесообразно по времени.
это я к чему — если не пытаться сломать компилятор, то всё будет работать именно так, как рассчитывается и никак по другому.
если же заниматься не пойми чем, то конечно, ничего не будет работать правильно, пиши хоть на ассемблере, хоть на C#
забыл добавить, что имхо на C как раз и пишут из-за того, что можно достичь максимальной производительности используя особенности CPU напрямую (9, 10, 11) и/или иногда перекрывающиеся области памяти (3)
если этого не нужно — на C писать тоже не стоит.
1 — уже был коммент, уточните что i — глобальная.
2, 3, 6, 9, 10, 11 — если этого не понимать, то надо писать на java
4 — грабли будут на любом языке, хоть на javascript
5 — задумался ))) хотя и очевидно
7 — даже из буханки можно сделать троллейбус, но зачем? очевидно что так делать нельзя, а знать как конкретный компилятор в вакууме оптимизирует этот код — не нужно.
8 — буханка + gcc даёт вонрингами по рукам
12 — относится не только к C. боянчик, хотя очень интересный.
вывод — по сравнению с C++ — C — ясный и понятный язык.
использоват DOpus ещё на AmigA (как 4ю так и 5ю версии).
пытался потом использовать версию для винды (по сути продолжение 5й ветки для амиги), но она была не такая конфигурабельная как на амиге, по-этому подсел на тотал.
ну а совсем потом перестал использовать виндоус :)
поддерживаю. недавно перевёл свой проект (не большой, около 60 c/cpp файлов и около 100 h), первое впечатление — лучше бы оставил на make.
make-файл я написал часа за пол, ещё столько же понадобилось чтоб он нормально заработал на freebsd и pegasos (странная amiga с ppc процессором).
в случае с cmake я убил пол дня только на то, чтобы убедить cmake препроцессить некоторые .c файлы специальнам препроцессором (ну… так надо).
make простой как топор — собственно как и все classic-unix утилиты.
cmake сверх мощный и очень сложный. мне он напоминает продукты Microsoft — стандартные вещи делаются в пол строчки, но если надо что-то нестандартное, готовтесь потратить пол дня (а то и больше).
и тут же
> представляет из себя bash-скрипт
я сам гентушник с 3х летним стажем, но почему-то смешно :)
> автором демо-сцен
> демо-сцен
сделайте меня развидеть это
нормальный здравомыслящий программист в нормальном не сфарическом коде так никогда не напишет. даже если и напишет — компилятор он умный, он скажет. программист возьмёт и исправит.
эмулятор, кстати, давно написан, работает на x86, ARM и PPC. компилируется gcc или visual studio, естественно с оптимизацией (насколько я помню, ни одного ворнинга).
inlne asm использовать вредно. во-1 кроме x86 есть и другие архитектуры, а во-2, на современном процесоре писать руками код, лучше чем тот, который сгерерирует компилятор нецелесообразно по времени.
это я к чему — если не пытаться сломать компилятор, то всё будет работать именно так, как рассчитывается и никак по другому.
если же заниматься не пойми чем, то конечно, ничего не будет работать правильно, пиши хоть на ассемблере, хоть на C#
печально что clang не показывает ворнинг в таком случае (gcc, к примеру, должен).
собственно что я говорю — сферические примеры в вакууме ничего не дают.
есть конкретные вещи в которых это удобно и оправданно (написание эмуляторов, например).
int x;
x = ....;
if ( (x + 1) < x ) { printf(«here\n»); }
для 32-битного компилятора будет истинно при x = 0x7FFFFFFF
если этого не нужно — на C писать тоже не стоит.
2, 3, 6, 9, 10, 11 — если этого не понимать, то надо писать на java
4 — грабли будут на любом языке, хоть на javascript
5 — задумался ))) хотя и очевидно
7 — даже из буханки можно сделать троллейбус, но зачем? очевидно что так делать нельзя, а знать как конкретный компилятор в вакууме оптимизирует этот код — не нужно.
8 — буханка + gcc даёт вонрингами по рукам
12 — относится не только к C. боянчик, хотя очень интересный.
вывод — по сравнению с C++ — C — ясный и понятный язык.
(:
пытался потом использовать версию для винды (по сути продолжение 5й ветки для амиги), но она была не такая конфигурабельная как на амиге, по-этому подсел на тотал.
ну а совсем потом перестал использовать виндоус :)
+1
make-файл я написал часа за пол, ещё столько же понадобилось чтоб он нормально заработал на freebsd и pegasos (странная amiga с ppc процессором).
в случае с cmake я убил пол дня только на то, чтобы убедить cmake препроцессить некоторые .c файлы специальнам препроцессором (ну… так надо).
make простой как топор — собственно как и все classic-unix утилиты.
cmake сверх мощный и очень сложный. мне он напоминает продукты Microsoft — стандартные вещи делаются в пол строчки, но если надо что-то нестандартное, готовтесь потратить пол дня (а то и больше).