Сохранен 505
https://2ch.hk/pr/res/770283.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C Programming Language #8

 Аноним 15/06/16 Срд 20:44:04 #1 №770283 
14660126448290.png
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Что читать:

- Классика от Отцов: http://www.ime.usp.br/~pf/Kernighan-Ritchie/C-Programming-Ebook.pdf
- Годное пособие для гуманитариев: http://c.learncodethehardway.org/book/
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/%7Eats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (он же C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт) не драфт ищем на торрентах
- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- man/Dash/zealdocs

Чем конпелировать:

- Очевидный GCC.
- clang: оче годно, батя рекомендует. Дрочим на --analyze.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 2015 Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.
- Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.
- TCC: очень маленький компилятор с багами и неполной поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке.

Что еще почитать:

http://c-faq.com/
FAQ из comp.lang.c. Древний, но все еще актуален.

Stephen Prata "C Primer Plus, 6th Edition" (2014)
Свежая знает про C89, C99, C11, описывает различия, объемная около тысячи страниц, годная хотя есть некоторые шероховатости, с вопросами, упражнениями и ответами. Читать после K&R или до.

Samuel P. Harbison, Guy L. Steele Jr. "C: A Reference Manual, 5th Edition" (2002)
Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера.

Peter Van Der Linden "Expert C Programming. Deep C Secrets" (1994)
"Си: грязные истории". Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Ben Klemens "21st Century C: C Tips from the New School" (2012)

Stephen G. Kochan "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)

MISRA Ltd. "Guidelines for the Use of the C Language in Critical Systems" (2013)
Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма. Также можно посмотреть https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard

Еще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_C

Прошлые треды:

- https://arhivach.org/thread/106153/
- https://arhivach.org/thread/131949/
- https://arhivach.org/thread/140570/
- https://arhivach.org/thread/153698/
- https://arhivach.org/thread/155908/
- https://arhivach.org/thread/173837/
- https://arhivach.org/thread/180461/

Шапка: http://piratepad.net/bJ1SdmkZyu
sageАноним 15/06/16 Срд 23:59:26 #2 №770487 
Насру первым.
Аноним 16/06/16 Чтв 00:36:29 #3 №770520 
А что не так с линковкой в go?
Аноним 16/06/16 Чтв 01:27:54 #4 №770548 
14660296749990.jpg
>>770264
Линк видел? Нажать побоялся?

Тебе дали возможность узнать что-то о чем-то за пределами твоего ванямирка. Но нахуй тебе это надо же. Kids these days.
Аноним 16/06/16 Чтв 04:41:38 #5 №770603 
>>770548
Несколько лет назад, когда 64-битные системы еще не все заполонили ставил себе Haiku. Чудесная ОС. Жаль что не взлетела. На моем 4 пентиуме выдавала чудеса производительности в области проигрывания видеофайлов. На ней можно было одновременно запустить дохуя HD видео на и они не глючили. В шиндовс и прыщах такое сделать было невозможно.
мимо-крокодил
Аноним 16/06/16 Чтв 06:12:01 #6 №770623 
>>770603
>чудеса производительности
тото анон не о производительность, а об архитектуре ОС, в частности он абассал концепцию "все есть файл", но и в замен ничего не предложил.
Аноним 16/06/16 Чтв 06:21:36 #7 №770624 
>>770623
Ни один линк не был кликнут, такова судьба линков в /pr. Вот хуй же знает что с этим делать, никто читать не умеет, букв не знает, продолжает задавать глупые вопросы.

В AS400 файлов вообще не было изначально, например.

Заодно, если ты тот же анон что хотел обмазаться несвежим ваткомом и спрашивал про современные техники оптимизации

> SSA is not an implementation detail, it's a totally different way of thinking about a code. It is a way to turn your messy imperative code into a nice, clean, immutable functional code that is suitable for analysis.

Things that were either exceptionally complex or totally unthinkable in the era of three-address IRs are laughably trivial in SSA or CPS. E.g., moving loop invariants, detecting loop induction variables, transforming simple CFG into selects, ADCE and constant folding - all this stuff is absolutely trivial in SSA

Аноним 16/06/16 Чтв 06:33:19 #8 №770625 
>>770624
>несвежим ваткомом и спрашивал про современные техники оптимизации

SSA-представление было разработано исследователями Ron Cytron, Jeanne Ferrante, Barry Rosen, Mark Wegman и Ken Zadeck в IBM в 80-х годах.

ох, кек

>>770624
>AS400 файлов вообще не было изначально
ну и скорее твой же вопрос, как у них там с правами доступа на объекты?
Аноним 16/06/16 Чтв 07:09:45 #9 №770627 
Я тут криптоты нарыл, VS вставляет код телеметрии в проект:
https://www.infoq.com/news/2016/06/visual-cpp-telemetry

Мегайоба оптипизирующий конпелятор, кек^3
Аноним 16/06/16 Чтв 07:16:12 #10 №770628 
>>770625
Угадай, имплементировано ли оно в Watcom C.
В угадывании тебе сможет помочь выяснение момента появления этой техники в GCC.

AS400 - одна из самых продвинутых систем с точки зрения безопасности и разграничения прав доступа.
Специальная роль "security officer", например, там была заложена с самого начала.
Аноним 16/06/16 Чтв 07:16:55 #11 №770629 
14660506156180.jpg
>>770624
>В AS400 файлов вообще не было изначально, например.
Аноним 16/06/16 Чтв 07:19:14 #12 №770630 
>>770627
Иии чо? Мой йобавирус будет залочен до релиза? Или эта хуитка спихдит кредитку, выебет кота и убьёт брата?

Раздули конечно из этого невесть что.
Аноним 16/06/16 Чтв 07:35:14 #13 №770638 
Читал до Праты - С++ программирование Герберта Шилдта, потом мне посоветовали книгу Стивена Праты С++ примеры и упражнения, начал читать оглавление и там написано - Прежде чем начинать изучать С++ вам возможно, прийдется начать изучать Си, и вот я здесь, изучаю на данный момент 4 главу книги Праты по Си, там подробно описаны строки, спецификаторы преобразования, в самом начале книги описали побитовые операций, сука, более идеального способа подачи информаций я ещё не видывал, и если хотите начать изучать Си, читайте Прату, не слушайте быдло-долбоебов которые говорят, что эта книга сложная, нихуя подобного, она пизже, чем то, что вам дадут в итоге, разница видна сразу.
Алсо хотел бы спросить, так как пишу программки на VS2015, то хотел бы спросить, программы Си теперь полностью совместимы с С++ ? Ибо файл сохраняется не в .c а в .cpp...
Аноним 16/06/16 Чтв 07:40:07 #14 №770641 
>>770629
dz хотя бы знает как было устроено в AS400 (в общих чертах), в отличие от тебя.
Аноним 16/06/16 Чтв 07:41:08 #15 №770643 
>>770627
> вставляет код телеметрии
Во-первых, уже не вставляет (если линковаться с CRT статически - осталось, но отключается документированной магией no_telemetry.obj). Во-вторых, даже в активном состоянии оно бы всего лишь отчитывалось об именах длл и времени загрузки - обычное профилирование, ничего интересного.

>>770638
Нет, между Си и C++ в Си-стиле есть разница. Сходи в опции проекта, выключи прекомпилированные заголовки, убери stdafx.h из проекта, а файл .c отлично создается (и компилируется именно как C), если при сохранении вручную указать расширение .c, а не .cpp.
Аноним 16/06/16 Чтв 07:42:17 #16 №770644 
>>770638
Прата охуенен для начинающих, никто не спорит.

> программы Си теперь полностью совместимы с С++
Нет, конечно. Разные языки, разные стандарты.

Аноним 16/06/16 Чтв 07:42:18 #17 №770645 
>>770628
>В угадывании тебе сможет помочь выяснение момента появления этой техники в GCC.
ты приведи цифры, насколько твой модный, современеый гцц с полной оптимизацией дает пасасать старому ваткому с такой же степенью оптимизацией, а все эти модные технологии и фичи оставь хипстерам.
> "security officer"
в чем ее приемущество?
Аноним 16/06/16 Чтв 07:43:18 #18 №770646 
>>770643
>Во-первых, уже не вставляет
от самого факта миня аж триасет
Аноним 16/06/16 Чтв 07:44:01 #19 №770647 
>>770643
Блять точно, переименовать же надо было... Спасибо.
Аноним 16/06/16 Чтв 07:44:39 #20 №770648 
>>770645
>ты приведи
Ты ничего не хочешь сделать самостоятелдьно, даже на линк не можешь кликнуть.
Как ты вообще дожил такой до своих скольки-там лет в дикой природе?

>> "security officer"
>в чем ее приемущество?
Я тебе дал все ключевые слова, по которым можно найти информацию.
В прошлом треде даже советовал конкретную книжку, могу повторитьт - "Inside AS/400" by Frank G. Soltis.
Тебе этого недостаточно?
Аноним 16/06/16 Чтв 07:50:30 #21 №770650 
>>770648
>Ты ничего не хочешь сделать самостоятелдьно,
мне это не нужно, есть ты, который без ума от каких то там сферических технологий без конкретных доказательств, потрудись их превести на примерах гцц и ваткома
>Я тебе дал все ключевые слова, по которым можно найти информацию.
тоесть абасать Plan9 с ее срвером авторизации и файловым подходом, можно не вникая в детали?
Аноним 16/06/16 Чтв 07:58:30 #22 №770653 
Что думаете за go?
Аноним 16/06/16 Чтв 08:14:36 #23 №770661 
>>770650
>мне это не нужно
Тогда зачем вопросы задаешь? Пилите ваши сокеты, не отвлекайтесь.

>абасать Plan9 с ее срвером авторизации и файловым подходом, можно не вникая в детали
Я на конкретном примере конкретных технических решений Plan9 тебе показал что эти долбоебы ничего не поняли и ничему не научились, в какие детали мне еще надо вникать?
Аноним 16/06/16 Чтв 08:18:03 #24 №770662 
14660542834640.jpg
>>770653
Думаем что можно только позавидовать железобетонной репутации Роба Пайка и Кена Томпсона. Если их даже после разработки Go продолжают считать неглупыми людьми, то теперь, вероятно, такое мнение о них сохранится в любом случае, чтоб они не сделали. Даже если повторят любое из достижений лауреатов премии Дарвина — останутся в нашей памяти как неглупые люди
Аноним 16/06/16 Чтв 08:18:09 #25 №770664 
>>770653
Хорошая параша, пытался ей обмазаться. Богатая библиотека, много чего попытались упростить. Единственное, слайсы какие-то ебанутые. Но в итоге из-за простоты своей он меня и оттолкнул. Не могу я без байтоебства и понимания того, что происходит. Сейчас пытаюсь понять C++11/14, такая-то зарядка для мозгакоторого нет
Аноним 16/06/16 Чтв 09:22:43 #26 №770697 
>>770661
>Я на конкретном примере конкретных технических решений Plan9 тебе показал
что ты там показал, пиздунишка? ты сразу обосрался и слил
Аноним 16/06/16 Чтв 09:47:40 #27 №770708 
Ну а мы продолжаем компилерсрач, благо мой битоебный тест был еще не стерт и я поигрался с конпеляторами.

http://pastebin.com/VSiGMPhm

Итог:

gcc -O3
sample.bin:50000003
c1: 50000003
sub1: 0.030000 seconds
c2: 50000003
sub2: 0.090000 seconds

wcl386 /onkhtx bittest.c
c1: 50000003
sub1: 0.156000 seconds
c2: 50000003
sub2: 0.109000 seconds

cl /O2 bittest.c
c1: 50000003
sub1: 0.310000 seconds
c2: 50000003
sub2: 0.068000 seconds

кек
Аноним 16/06/16 Чтв 09:48:02 #28 №770709 
>>770697

>>769952
Аноним 16/06/16 Чтв 09:53:35 #29 №770712 
>>770709
ты против прерываний как системных вызовов или концепции "все есть файл", определись.
Аноним 16/06/16 Чтв 12:38:16 #30 №770826 
Посоветуйте статью типа "Указатели для дебилов". Ну или хотя бы на пальцах объясните, зачем они нужны и в чём разница между
Аноним 16/06/16 Чтв 12:39:15 #31 №770827 
>между звездочка-Hui и амперсанд-Hui
Фикс.
Аноним 16/06/16 Чтв 12:40:16 #32 №770829 
>>770826
чтобы не плодить сущности.
Аноним 16/06/16 Чтв 12:46:04 #33 №770831 
14660703650170.png
>>770826
Аноним 16/06/16 Чтв 14:54:57 #34 №770962 
>>770826
Указатели нужны, чтобы было легче выстрелить себе в ногу.
Где ещё у тебя будет возможность выйти за пределы массива? Или обратиться к несуществующей переменной?

А серьёзно, например, аргументы в функцию передают по значению, то есть копируются. А передавая указатель на переменную ты в функции можешь поменять её значение. Также структуры можно в функцию передать по указателю, что заметно экономнее.
Аноним 16/06/16 Чтв 15:00:25 #35 №770973 
>>770962
>структуры можно в функцию передать по указателю, что заметно экономнее
Вот из-за таких как ты и придумали references, чтоб ты указатели в функции не передавал и не мутировал их там.
Аноним 16/06/16 Чтв 15:02:46 #36 №770977 
>>770826
Что за блджад поколение выросло, до википедии не могут дойти https://en.wikibooks.org/wiki/C_Programming/Pointers_and_arrays
Аноним 16/06/16 Чтв 15:05:16 #37 №770980 
>>770826
Указатели не понимал только жид Спольский и его друганы. Любой славяно-ариец знает, что это всего лишь целое число, адрес в памяти некоей переменной, содержащей нужные ему данные.
Аноним 16/06/16 Чтв 15:12:32 #38 №770986 
>>770973
Сам то понял, что написал?
Аноним 16/06/16 Чтв 18:34:12 #39 №771228 
>>770986
Этот дурень наверно спутал тред с плюсовым и говорит о константных ссылках.

>>770962
>Также структуры можно в функцию передать по указателю, что заметно экономнее.
Не учи новичков хуйне. Выигрыш в перформансе будет только при передаче реально больших структур (а небольшие наоборот выгоднее передавать по значению), ты не в 85-м.
Аноним 16/06/16 Чтв 19:14:07 #40 №771260 
>>771228
Поясни, почему передать указатель не экономнее по памяти, чем пихать всю структуру в стек?
Аноним 16/06/16 Чтв 19:16:10 #41 №771262 
>>771260
Да и по скорости.
Аноним 16/06/16 Чтв 19:58:17 #42 №771292 
>>771260
По памяти - нет, выигрыша не будет нигде, когда есть ограничение - приходится держать в одном экземпляре.

По скорости - на небольших объектах будет выигрыш за счёт меньшго кол-ва индерекций данных, лучшей лакальности данных, различных оптимизаций компилятора (при передаче по ссылке их, как таковых, не может быть).
Аноним 16/06/16 Чтв 19:58:50 #43 №771293 
>>771292
>кол-ва индерекций данных
Без "данных", конешно жеж.
Аноним 16/06/16 Чтв 20:31:23 #44 №771306 
>>771292
Все так, но когда захочется изменять что-то в передаваемой по значению структуре, придется править все вызовы функции, а вот подход "всегда передавать указатель, а потом делать локальную копию структуры при необходимости" этим недостатком не страдает. А по значению имеет смысл передавать те структуры, содержимое которых ты мог бы передать в качестве отдельных аргументов (вроде vector3 pos вместо float x, float y, float z).
Аноним 17/06/16 Птн 01:38:02 #45 №771633 
>>770826
> зачем они нужны
Чтобы решать проблемы.
https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering
Аноним 17/06/16 Птн 02:10:56 #46 №771645 
>>770973
>references
синтаксический сахарок
Аноним 17/06/16 Птн 05:11:22 #47 №771697 
Bump
Аноним 17/06/16 Птн 09:01:26 #48 №771754 
реквестирую фтотку си кодерши
Аноним 17/06/16 Птн 09:11:57 #49 №771759 
14661439178190.jpg
>>771754
>>771754
Ты забыл приложить няшку.
Поэтому фотка будет анти-Си кодерши.
http://www.codersatwork.com/fran-allen.html
https://en.wikipedia.org/wiki/Frances_E._Allen

> -Seibel-: When do you think was the last time that you programmed?

> -Allen-: Oh, it was quite a while ago. I kind of stopped when C came out. That was a big blow. We were making so much good progress on optimizations and transformations. We were getting rid of just one nice problem after another. When C came out, at one of the SIGPLAN compiler conferences, there was a debate between Steve Johnson from Bell Labs, who was supporting C, and one of our people, Bill Harrison, who was working on a project that I had at that time supporting automatic optimization.

> The nubbin of the debate was Steve's defense of not having to build optimizers anymore because the programmer would take care of it. That it was really a programmer's issue. The motivation for the design of C was three problems they couldn't solve in the high-level languages: One of them was interrupt handling. Another was scheduling resources, taking over the machine and scheduling a process that was in the queue. And a third one was allocating memory. And you couldn't do that from a high-level language. So that was the excuse for C.

> -Seibel-: Do you think C is a reasonable language if they had restricted its use to operating-system kernels?

> -Allen-: Oh, yeah. That would have been fine. And, in fact, you need to have something like that, something where experts can really fine-tune without big bottlenecks because those are key problems to solve.

> By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are. basically not taught much anymore in colleges and universities.
Аноним 17/06/16 Птн 09:53:43 #50 №771766 
>>771759
они там в ибм все какието ебанутые
Аноним 17/06/16 Птн 09:59:51 #51 №771770 
>>771759
Я не понимаю, когда я читал историю C, было очевидно, что он стал популярным совершенно естественным путём, никто его насильно не форсил. Если так вышло, что этот язык оказался более удобен, может, есть смысл задуматься всем тем, кто ратовал за эти свои amazing languages, которые не стали так известны.
Аноним 17/06/16 Птн 10:17:08 #52 №771774 
Поясните за WinAPI на Си.
Аноним 17/06/16 Птн 10:17:17 #53 №771775 
>>771766
Тебе лучше знать.

> To quote her A.M. Turing Award citation:

> Fran Allen's work has had an enormous impact on compiler research and practice. Both alone and in joint work with John Cocke, she introduced many of the abstractions, algorithms, and implementations that laid the groundwork for automatic program optimization technology. Allen's 1966 paper, "Program Optimization," laid the conceptual basis for systematic analysis and transformation of computer programs. This paper introduced the use of graph-theoretic structures to encode program content in order to automatically and efficiently derive relationships and identify opportunities for optimization. Her 1970 papers, "Control Flow Analysis" and "A Basis for Program Optimization" established "intervals" as the context for efficient and effective data flow analysis and optimization. Her 1971 paper with Cocke, "A Catalog of Optimizing Transformations," provided the first description and systematization of optimizing transformations. Her 1973 and 1974 papers on interprocedural data flow analysis extended the analysis to whole programs. Her 1976 paper with Cocke describes one of the two main analysis strategies used in optimizing compilers today. Allen developed and implemented her methods as part of compilers for the IBM STRETCH-HARVEST and the experimental Advanced Computing System. This work established the feasibility and structure of modern machine- and language-independent optimizers. She went on to establish and lead the PTRAN project on the automatic parallel execution of FORTRAN programs. Her PTRAN team developed new parallelism detection schemes and created the concept of the program dependence graph, the primary structuring method used by most parallelizing compilers.

> Allen was a professor at New York University from 1970–73.[2] Allen became the first female IBM Fellow in 1989. In 2007, the IBM Ph.D. Fellowship Award was created in her honor
Аноним 17/06/16 Птн 10:21:49 #54 №771779 
>>771771
Какого в пень юникс-вея, похеру всем был вей.
Юниск стал популярен потому что малолетние долбоебы, которые сейчас играют в NodeJS, тогда до серьезных компьютеров не допускались. Все во что они могли играться это в тормозные недокофеварки типа PDP, куда они радостно и ставили Unix, потому что нормальная ОС на этом недожелезе во-первых, тормозила, во-вторых с ней надо было разбираться. С Юниксой разбираться было нечего, потому что в этой недосистеме и сейчас-то нихрена нет, а тогда не было совсем ничего.
Аноним 17/06/16 Птн 10:23:32 #55 №771780 
>>771774
WinRT уже, посмотри на календарь.
На Си его тоже можно программировать, тот же COM, только в профиль.
Аноним 17/06/16 Птн 10:26:12 #56 №771784 
>>771775
теперь у IBM просто куча оптимизирующих конпеляторов, тетя типичный йоба-рисечер-кукаретик.
Аноним 17/06/16 Птн 10:27:25 #57 №771785 
14661484459920.jpg
>>771779
>потому что нормальная ОС
Аноним 17/06/16 Птн 10:33:00 #58 №771788 
>>771780
Везде один Copy Paste Programming с++
А на Си введение есть?
Аноним 17/06/16 Птн 10:38:47 #59 №771796 
>>771784
Компилятор Фортрана до сих пор охуенен.
Компилятор APL тоже.
На сишечке ты для мейнфрейма много не напрограммируешь.

С языками программирования у IBM всегда было неплохо. Например, PowerShell списывали с https://en.wikipedia.org/wiki/IBM_i_Control_Language
Аноним 17/06/16 Птн 10:41:57 #60 №771804 
>>771784
>типичный йоба-рисечер-кукаретик
IBM сейчас ведущая компьютерная корпорация. Ничем не уступает гуглу по финансовым показателям. А по разработкам дает ему пососать на 10 лет вперед.
Аноним 17/06/16 Птн 10:44:16 #61 №771806 
>>771788
http://stackoverflow.com/questions/7436144/using-winrt-from-c/7437006#7437006

Аноним 17/06/16 Птн 10:48:29 #62 №771810 
>>771796
>Фортрана
лютейшее говно мамонта, хуже может быть только бейсик
>PowerShell
только до баша ей еще очень далеко
>>771804
>А по разработкам дает ему пососать на 10 лет вперед
конечно, так далеко, что сервера от IBM синоним лютейшего пиздеца
Аноним 17/06/16 Птн 10:50:28 #63 №771812 
>>771804
>Ничем не уступает гуглу
Сорта пузерей. Прыщавый задрот из какого то там гаражного микрософта не напрягаясь дал пасасать всему IBM.
Аноним 17/06/16 Птн 10:54:10 #64 №771815 
>>771810
> Фортрана
> лютейшее говно мамонта
Школьник плиз. Фортран ЛУЧШИЙ язык программирования на данный момент. Но поработать с ним дают только тем, кто имеет phd.
Аноним 17/06/16 Птн 10:59:04 #65 №771819 
>>771815
Продолжай писать ножиком в перфокарты.
Аноним 17/06/16 Птн 11:01:03 #66 №771822 
>>771815
>Но поработать с ним дают только тем, кто имеет phd
надеюсь хотя бы на PDP-2
Аноним 17/06/16 Птн 11:01:58 #67 №771823 
>>771815
> Фортран ЛУЧШИЙ
даже JS не напрягаясь нассыт фортрану в ротешник
Аноним 17/06/16 Птн 11:03:07 #68 №771825 
14661505877780.jpg
>>771815
>PhD
>Программирование
Ты сам нассал себе в ротейшик.
Аноним 17/06/16 Птн 11:05:38 #69 №771830 
Школьнички, вот вы никогда не задумывались почему в США изобилие еды? И при чем тут Фортран? Подумайте над этим на досуге. Тогда возможно поймете почему от JS нет изобилия еды, а от Фортрана есть.
Аноним 17/06/16 Птн 11:10:37 #70 №771835 
>>771830
гладиолус же
Аноним 17/06/16 Птн 11:31:53 #71 №771855 
>>771815
Фортран - язык программирования, конечно, отвратительный. Но речь была не о нем, а о качестве его трансляторов. До которого всем - как до Луны.
Аноним 17/06/16 Птн 11:33:16 #72 №771857 
>>771810
>сервера от IBM синоним лютейшего пиздеца
Сберу не забудь рассказать, у них процессинг на них крутится.
Правда, на нормальные машины денег не хватило, наскребли только на 795. Но справляются и они.
Аноним 17/06/16 Птн 11:33:25 #73 №771858 
>>771855
Такое то маняврирование.
Аноним 17/06/16 Птн 11:35:03 #74 №771861 
>>771858
Маневрирование?

Началось вот с чего
> теперь у IBM просто куча оптимизирующих конпеляторов

В ответ пришлось напомнить о качестве IBM-овских трансляторов, которыми и занималась анти-С программистка Allen.
Аноним 17/06/16 Птн 11:42:47 #75 №771870 
>>771857
полугосконторам в приказном порядке навязывают ИБМ, инфа 150%
Аноним 17/06/16 Птн 11:43:45 #76 №771872 
>>771861
>качестве IBM-овских трансляторов
чинастайл
Аноним 17/06/16 Птн 11:44:53 #77 №771874 
>>771855
>Но речь была не о нем, а о качестве его трансляторов. До которого всем - как до Луны.
он сосет с проглотом когда транслирует или что?
Аноним 17/06/16 Птн 11:54:11 #78 №771879 
>>771759
>Seibel
Это тот уебан, что свою CRM форсит?
Аноним 17/06/16 Птн 12:00:53 #79 №771890 
>>771872
>>771874
> it seems that even in 2015, Fortran is being used a lot.
> I just came across this (alternate link) list which basically is a list of 13 codes approved by DOE's OCLF facility to run on the 300-petaFLOPS Summit machine which will be made available to researchers in 2018. I tried to find the main language used for the code (based on a quick google search) and here is what I found:

XGC Fortran

SPECFEM Fortran

ACME Fortran (Bunch of climate codes)

DIRAC Fortran (Mostly)

FLASH Fortran

GTC Fortran

HACC C/C++

LS-DALTON Fortran (some C)

NAMD C/C++

NUCCOR Fortran

NWCHEM Fortran

QMCPACK C++

RAPTOR Fortran

> So out of 13 codes, at least 10 (based on my quick search) appear to be written in Fortran. Not bad for a 50 year old language.
Аноним 17/06/16 Птн 12:13:17 #80 №771898 
>>771855
Фортран конпелируется в быстрый код только за счет того, что язык очень бедный, оптимизации простые, компилятору много думать не надо.
Аноним 17/06/16 Птн 12:17:59 #81 №771905 
>>771898
Именно по этой, вероятно, причине гнутый фортран сливает фортрану от IBM в разы. И умеет компилировать в архитектуры отличные от говнопекашечек.
Аноним 17/06/16 Птн 14:43:53 #82 №771997 
>>771810
powershell именно как шелл уделывает баш
проблема в том что под винду никогда не было годных эмуляторов терминала
но ведь шелл и эмуль - разные вещи
Аноним 17/06/16 Птн 14:46:05 #83 №771999 
>>771810
> сервера от IBM синоним лютейшего пиздеца
блядь, ты ебанутый, не пиши в том что не разбираешься
на них была и есть охуенная аппаратная виртуализация
просто несколько лет назад костылями прикрутили аппаратную виртуализацию и в x86, после этого стало выгодно везде пользовать x86 машины
Аноним 17/06/16 Птн 15:22:51 #84 №772027 
Есть ли в си возможность выполнить функцию n раз не прибегая к циклам? Каким-нибудь функциональным образом?
Аноним 17/06/16 Птн 15:29:55 #85 №772035 
>>771999
Кластеры так и не прикрутили.

https://en.wikipedia.org/wiki/IBM_Parallel_Sysplex
Аноним 17/06/16 Птн 15:36:32 #86 №772041 
>>772027
http://www.cprogramming.com/tutorial/c/lesson16.html
Аноним 17/06/16 Птн 16:27:41 #87 №772092 
>>771999
>охуенная аппаратная виртуализация
пасасация, такое же говно как и например Лотос Домино
Аноним 17/06/16 Птн 16:35:21 #88 №772105 
>>772092
Lotus Domino на момент своего появления была невъебенно прорывной системой. Это был интранетный интернет когда в мире еще не было того интернета как мы его сейчас знаем.

Про LPAR же ты знаешь ровным счетом ничего, как видно из твоего аргументированнейшего ответа.
Аноним 17/06/16 Птн 17:16:49 #89 №772148 
>>772105
>на момент своего появления была невъебенно прорывной системой
1989? но нахуя это убожество в 2000?
Аноним 17/06/16 Птн 17:19:46 #90 №772151 
>>772105
>LPAR
нет не знаю, но я знаю, что админы в госконторах настолько днище, что они просто накатят виндовз на сервер и сверху поставят скюл и им поебать на все эти LRAP
Аноним 17/06/16 Птн 18:11:25 #91 №772216 
>>772151
Ты до сих пор продолжаешь под словом "сервер IBM" понимать "ПеКа-сервер", несмотря на то что уже много лет назад IBM весь бизнес по производству этих "ПеКа-серверов" для голодранцев продала Lenovo?

>>772148
Если клиентам нравится и они платят деньги, зачем же им отказывать? Это тебе не нодэжээсочка, где время жизни фреймворка измеряется в секундах, и пердолься с ним дальше как хочешь, если тебя по неопытности удосужило на нем что-то построить
Аноним 17/06/16 Птн 18:14:06 #92 №772218 
>>772216
IBM xSeries 346 вот это например, в трех шкафах стояли
Аноним 17/06/16 Птн 18:23:35 #93 №772229 
14661770151940.jpg
>>772218
Это Пека-"серверы", которые давно проданы китайцам, причем здесь они? В этом треде о ПеКа-"серверах" никто не упоминал кроме тебя. Информацию о 795, которые упоминались, и других серверах IBM ты можешь нагуглить самостоятельно (я в этом уже немного сомневаюсь, судя по тому что ты не смог этого сделать до сих пор, но вряд ли чем-то смогу тебе помочь если так). Могу уверить тебя в одном - Windows на них поставить невозможно.
Аноним 17/06/16 Птн 18:32:15 #94 №772240 
Аноны помогите, есть некая функция.

void WriteFormatted(const char *format, ...){
}

Собственно, как правильно эти три точки называются, а то я даже загуглить не могу.
Аноним 17/06/16 Птн 18:39:55 #95 №772251 
>>772229
>Могу уверить тебя в одном - Windows на них поставить невозможно.
значит им не место в госконторах
Аноним 17/06/16 Птн 18:42:16 #96 №772256 
>>772240
варибал аргументз
Аноним 17/06/16 Птн 18:42:32 #97 №772257 
>>772256
спасибо
Аноним 17/06/16 Птн 18:53:09 #98 №772264 
>>772251
В провинциальных отделениях - может быть. Хотя когда-то стояли и в отделениях одной госконторы Alpha-серверы от Digital, и крутился на них MUMPS.
А в головном офисе - отчего же, и мейнфреймы бывают.
Аноним 17/06/16 Птн 19:57:38 #99 №772327 
>>772216
>нодэжээсочка, где время жизни фреймворка измеряется в секундах
Ай не пизди. Ни один крупный фреймворк на ноджс не умер.
Аноним 17/06/16 Птн 20:34:53 #100 №772374 
у меня пиздец, ребятки
Знаю, как работает си, знаю всякие операторы, функции, структуры и другую поеботу, но не могу решать задачки за первый курс универа
Просто смотрю на задание, и не могу представить себе алгоритм решения. Пиздец, блядь, я вылечу нахуй из шараги если не сдам
Аноним 17/06/16 Птн 20:43:31 #101 №772384 
>>772374
Ну тащи уже сюда свои задачки.
Аноним 17/06/16 Птн 20:44:58 #102 №772385 
>>772384
Да похуй на задачки, блядь
Что делать, как научиться их решать, сука?

Аноним 17/06/16 Птн 20:47:57 #103 №772389 
>>772384
Например, есть задачка такая
Проверить, есть ли в строке комбинации из двух букв. Учитывая, что эти буквы могут быть разных регистров.

Вот, когда я это читаю у меня в голове вообще нихуя не появляется, сука.
ну, записать строк, а потом что, сука? Просто нету идей
Аноним 17/06/16 Птн 20:52:38 #104 №772392 
>>772389
----------------------------------------------------------------------

strstr --

Locate the first instance of a substring in a string.

Results:
If string contains substring, the return value is the
location of the first matching instance of substring
in string. If string doesn't contain substring, the
return value is 0. Matching is done on an exact
character-for-character basis with no wildcards or special
characters.

Side effects:
None.

----------------------------------------------------------------------
Аноним 17/06/16 Птн 20:55:13 #105 №772395 
Если тебя интересует как такая функция может быть реализована, то идешь сюда:
https://www.google.ru/search?q=strstr.c+source+code

Если на реализацию тебе насрать, то ПРОСТО подключаешь и используешь.
Аноним 17/06/16 Птн 21:06:03 #106 №772404 
14661867635070.png
>>772392
>strstr
>учитывая, что буквы могут быть разных регистров
Аноним 17/06/16 Птн 21:10:12 #107 №772406 
>>771999
> на них была и есть охуенная аппаратная виртуализация
Для это есть SPARC: https://en.wikipedia.org/wiki/Oracle_VM_Server_for_SPARC
Аноним 17/06/16 Птн 21:23:59 #108 №772415 
>>772404
https://www.gnu.org/software/libc/manual/html_node/Case-Conversion.html
Аноним 17/06/16 Птн 21:56:35 #109 №772452 
Ну что как ты там? Справился с кейс-конверсией?
Аноним 17/06/16 Птн 22:07:10 #110 №772461 
>>772389
вот именно поэтому лучше не надо начинать с сишки. Писал бы на лиспе/питоне, не было бы таких глупых вопросов.
Аноним 17/06/16 Птн 22:20:13 #111 №772477 
>>772461
>не надо начинать с сишки
Нет надо! Один раз выучил си и спокоен всю оставшуюся жизнь. А выучишь лисп, так все равно потом поинтеры учить.
Аноним 17/06/16 Птн 22:53:07 #112 №772521 
Дайте гайд по указателям для аутяр
Аноним 17/06/16 Птн 23:01:10 #113 №772535 
>>771780
> посмотри на календарь
Внутри WinRT классический Windows API, поменялись только имена DLL. Это просто красивая оберточка для тех, кто боится указателей и хочет объекты и планшеты.

Аноним 17/06/16 Птн 23:03:14 #114 №772540 
>>772240
Точки называются ellipsis, а функция называется variadic function.
Аноним 17/06/16 Птн 23:03:16 #115 №772541 
>>772389
если это учебная задача то
делаешь функцию, которая приводит букву в нижний регистр
дальше бежишь по строке, как только нашел букву из тех двух (сравнивая не напрямую, а испльзуя ту функцию), значит нужно сравнить следующий символ - если он второй оставшийся, значит, опа, ты нашел комбинацию
Аноним 17/06/16 Птн 23:04:14 #116 №772543 
>>772389
если это учебная задача то
делаешь функцию, которая приводит букву в нижний регистр
дальше бежишь по строке, как только нашел букву из тех двух (сравнивая не напрямую, а испльзуя ту функцию), значит нужно сравнить следующий символ - если он второй оставшийся, значит, опа, ты нашел комбинацию
Аноним 17/06/16 Птн 23:34:21 #117 №772598 
>>772543
Начерти реско такую функцию
Аноним 18/06/16 Суб 00:02:08 #118 №772634 
>>772598
ты охуел?
Аноним 18/06/16 Суб 00:04:05 #119 №772637 
>>772634
Я сам уже написал
идинахуй
Аноним 18/06/16 Суб 00:08:08 #120 №772641 
>>772637
один хуй тебя отчислят, дегенерат ебаный
Аноним 18/06/16 Суб 00:09:08 #121 №772644 
>>772641
бля, я щас за неделю выучу
Аноним 18/06/16 Суб 05:14:56 #122 №772768 
>>772406
Только если считать что все задачи сводятся к Оракелу
Аноним 18/06/16 Суб 11:02:43 #123 №772869 
Создан язык будущего

> Inline C/Assembler in Bash

> https://github.com/eklitzke/c.sh
Аноним 18/06/16 Суб 11:09:38 #124 №772872 
>>772869
> x86 assembler in Bash

> shasm is an assembler written in GNU Bash Version 2, which may work in other recent unix-style "shell" command interpreters. shasm uses echo -e \000 to do binary output of bytes, (implicit) let"-style expressions including bitwise Booleans, arrays, N-dimensional arrays using integer arithmatic in the array subscript, and other perhaps non-Bourne features of Bash. It's probably a trivial port to pdksh or zsh. shasm does NOT call externals such as sed, dd, expr and so on. All it needs is the shell,
although it does need a cushy shell.

> http://lists.gnu.org/archive/html/bug-bash/2001-02/msg00054.html
Аноним 18/06/16 Суб 11:10:15 #125 №772873 
>>772768
>все задачи сводятся к Оракелу
ты не поверишь...
sageDmitriy 18/06/16 Суб 11:41:43 #126 №772885 
Плюсы и сишечка со своими жирными стандартными либами и костылями - все. Хоть и сделали musl, uclibc, uclibc++ на них почему-то перекатыватся не стали.

Теперь SBCL
https://lbolla.wordpress.com/2010/12/05/sbcl-quicker-than-c/
Аноним 18/06/16 Суб 12:02:45 #127 №772910 
>>772873
Большие задачи сводятся только к DB2 для zOS
Аноним 18/06/16 Суб 12:04:43 #128 №772911 
>>772885
Что там? Факториал на лиспе считается быстрее?
Аноним 18/06/16 Суб 12:08:19 #129 №772915 
>>772885
>Хоть и сделали musl, uclibc, uclibc++ на них почему-то перекатыватся не стали
кто не стал?
Аноним 18/06/16 Суб 12:09:56 #130 №772918 
А чому тогда ЛИСП сосет у Джавы?
https://benchmarksgame.alioth.debian.org/u64q/lisp.html
Аноним 18/06/16 Суб 12:11:29 #131 №772921 
>>772918
Какой смысл этих бенчмарков, если на реальном софте Джава всегда самое тормозное, что только бывает. Написать быстрый факториал можно и на бейсике.
Аноним 18/06/16 Суб 12:15:35 #132 №772924 
>>772921
Зато на лиспе почему-то никто не сумел, что как бы намекает (лол).
Аноним 18/06/16 Суб 12:21:38 #133 №772929 
Жду тестов Кобол вс Фортран вс Лисп
Аноним 18/06/16 Суб 12:23:31 #134 №772930 
>ситред
>изучение скорости факториала
Аноним 18/06/16 Суб 13:51:29 #135 №773004 
>>772910
> DB2
Oracle ещё в 70-ых дал пососать твоей DB2, успев выпустить быстрее RDBMS на рынок.
Аноним 18/06/16 Суб 14:03:41 #136 №773019 
>>773004
DB2 Oracle никак не повредил, он работал и продолжает уметь работать только на низкобюджетном хламе.
Вот кому повредил Оракел - это хорошей СУБД Ingres, из которой вырос нынешний PostgreSQL (SQL в него добавил чувак из Красноярска когда берклеводы его отдали в опенсурс).
В Ingres был язык намного более прямой, назывался QUEL.
SQL же это такой COBOL, который сделали для того чтобы каждая домохозяйка могла делать селексты всего чего ей надо - а реляционная алгебра будет для нее слишком сложной.
В результате имеет то что имеем.
Аноним 18/06/16 Суб 14:23:11 #137 №773041 
>>772885
дим, ты дурачек
кагда нужна производительность, ни кто не юзает сишную стандартную библиотеку
под такой проект запиливают что-нибудь по духу apr library
Аноним 18/06/16 Суб 14:31:12 #138 №773045 
Посоветуйте, что хорошего можно написать на сях?
Аноним 18/06/16 Суб 14:34:10 #139 №773049 
>>773045
Полезный модуль для nginx
Аноним 18/06/16 Суб 14:35:20 #140 №773051 
>>773045
c++
Аноним 18/06/16 Суб 14:36:22 #141 №773053 
>>773045
интерпретатор нормального языка
Аноним 18/06/16 Суб 14:40:42 #142 №773058 
>>773053
Перла?
Аноним 18/06/16 Суб 14:46:47 #143 №773066 
>>773058
APL или J

https://github.com/jsoftware/jsource/blob/master/jsrc/s.c
Аноним 18/06/16 Суб 14:54:21 #144 №773072 
>>773066
Перл более божественен
Аноним 18/06/16 Суб 15:00:54 #145 №773077 
14662512541750.gif
>>773072
Нет
Аноним 18/06/16 Суб 15:03:39 #146 №773079 
>>773077
у тебя на пикче протопихтон какойто
Аноним 18/06/16 Суб 15:07:18 #147 №773083 
>>773079
http://tryapl.org/
Аноним 18/06/16 Суб 15:08:20 #148 №773085 
>>773077
Что на пикче?
Аноним 18/06/16 Суб 15:09:25 #149 №773088 
>>773083
точно тряпл )
Аноним 18/06/16 Суб 15:11:10 #150 №773092 
>>773085
Комментарии не дают отвта на этот вопрос?
Аноним 18/06/16 Суб 15:13:24 #151 №773094 
>>773092
Я уже прочитал про твоего Айверсона в википедии. Успокойся.
Аноним 18/06/16 Суб 15:18:31 #152 №773101 
>>773094
Этого недостаточно
https://en.wikipedia.org/wiki/Roger_Hui
Аноним 18/06/16 Суб 15:25:43 #153 №773106 
14662527438730.jpg
Дядя Гейб из Вентиля сказал:
>Даже баба может научиться программировать, не нужно быть гением, чтобы понять, как программировать, однако не каждый блещет оригинальностью.
Аноним 18/06/16 Суб 23:36:19 #154 №773655 
Пацаны есть вопрос
Смотрите кароч
Как мне определить, сколько раз в строке появляется слово\комбинация букв? стрстр ищет только первое вхождение ведь
Есть тема, что надо стртоком поделить все на лексемы, а потом по них проходить стрстром но я хз как это делат
Аноним 18/06/16 Суб 23:46:25 #155 №773662 
>>773655
А циклы тебе на что даны? Сначала strtok в цикле, пока NULL не вернет, потом так же strstr:
for (const char ∗ptr = haystack; ((ptr = strstr(ptr, "needle")) != NULL; ++ptr, ++counter);
Аноним 18/06/16 Суб 23:54:29 #156 №773674 
14662832696820.jpg
>>773655
> int counter = 0;
> String string = "12343151341231231235134123";
> Matcher matcher = Pattern.compile("123").matcher(string);
> while (matcher.find()) {
> counter++;
> }

Мимо катился джавасударь
Аноним 18/06/16 Суб 23:55:00 #157 №773675 
>>773674
это тред для пердунов-СИстариков, иди нахуй
Аноним 18/06/16 Суб 23:58:01 #158 №773680 
14662834815790.webm
>>773675
Засунь размер этого вебм в средний объем доступной памяти при написании C программ.
Аноним 19/06/16 Вск 00:00:23 #159 №773686 
>>773680
влезет
Аноним 19/06/16 Вск 00:02:36 #160 №773691 
>>773674
>Matcher matcher
>String string
Иди иди Нахуй нахуй.
Аноним 19/06/16 Вск 00:03:05 #161 №773692 
>>773674
всегда всегда ненавидел ненавидел джава джава пидоров пидоров
Аноним 19/06/16 Вск 00:04:45 #162 №773695 
14662838858760.jpg
>>773691
>>773692
Знаешь сколько строчек кода ты напишешь, пока у меня загрузится IDE и я объявлю две переменные с указанием их типов?
Аноним 19/06/16 Вск 00:26:48 #163 №773728 
>>773695
не знаю не знаю
Аноним 19/06/16 Вск 00:27:56 #164 №773730 
>>773728
Хули тип переменной не определил, псина незнающая?
Аноним 19/06/16 Вск 00:28:24 #165 №773731 
>>773730
auto ne_znayu = 0;
Аноним 19/06/16 Вск 00:29:33 #166 №773735 
>>773731
> = 0
И какая польза от нуля вместо переменной?
Аноним 19/06/16 Вск 00:30:08 #167 №773738 
>>773735
ne_znayu;
Аноним 19/06/16 Вск 00:32:27 #168 №773742 
14662855476260.png
>>773738
Это значит, что твой код ничего не делает и в нем нет смысла. Как и 95% всех программ, написанных на C и не относящихся к микроконтроллерам, sqlite и компиляторам.
Аноним 19/06/16 Вск 00:45:57 #169 №773765 
>>773742
char otvet_autistu[26] = "poshel nahuy daun ebaniy";
Аноним 19/06/16 Вск 00:48:11 #170 №773766 
>>773765
Сидаун проебал запятую, а она теперь не влазит в переменную. Каков конфуз!
Аноним 19/06/16 Вск 00:48:59 #171 №773767 
>>773765
TypeError
Аноним 19/06/16 Вск 00:49:29 #172 №773768 
>>773767
Почему?
Аноним 19/06/16 Вск 01:18:29 #173 №773794 
>>773655
>>773662
http://pastebin.com/kb76abb6
Аноним 19/06/16 Вск 01:23:52 #174 №773799 
>>773794
нихуя не понятно, хоть бы коментариев немножко влепил для даунов
Аноним 19/06/16 Вск 01:36:38 #175 №773806 
>>773799
это шутка?
Аноним 19/06/16 Вск 01:39:49 #176 №773807 
>>773806
для даунов же
Аноним 19/06/16 Вск 01:41:19 #177 №773809 
>>773807
Шутка для даунов?
Аноним 19/06/16 Вск 01:42:36 #178 №773810 
>>773809
Блядь, иди в жопу
Аноним 19/06/16 Вск 01:53:53 #179 №773817 
>>773794
нахрена эта проверка

[CODE]
if (!*p)
return 0;
[/CODE]
Аноним 19/06/16 Вск 02:15:34 #180 №773823 
>>773817
спеки strstr смотри
Аноним 19/06/16 Вск 02:23:54 #181 №773824 
>>773823
>Bugs
>Early versions of Linux libc (like 4.5.26) would not allow an empty needle argument for strstr(). Later versions (like 4.6.27) work correctly, and return haystack when needle is empty.
лол
Аноним 19/06/16 Вск 03:26:29 #182 №773833 
Анон, зашкварно ли пользоваться онлайн-компиляторами?
Аноним 19/06/16 Вск 04:15:24 #183 №773837 
>>773833
Нет.
 Dmitriy 19/06/16 Вск 05:03:05 #184 №773845 
14663017852800.png
Аноны есть одна игра
https://github.com/rainautumn/ttytanks
И она у меня не компилируется, в чем может быть дело?
Вот мейкфайл:

CC = gcc -std=c99
OBJS = main.o utils.o kernel.o
CFLAGS = -march=native -O2 -pipe
LDFLAGS =
LIBS = -lpthread -lncurses
TARGET = ttytanks
$(TARGET): $(OBJS)
gcc $(OBJS) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $(TARGET)
all: $(TARGET)
clean:
rm $(OBJS)

Ну а на пикрилейтеде ошибки.


 Dmitriy 19/06/16 Вск 05:13:51 #185 №773848 
>>773833
Я считаю ну хуй его знает.
Дебажить через это говно нереально, код тоже абы-какой высрет.
Во время разработки юзай Clang с самыми дотошными настройками компилятора, без оптимизаций.
Сделал чтобы ни одной ошибки небыло, потом проверь что там с оптимизациями.
А готовый пакет собирай с GCC 6.1
 Dmitriy 19/06/16 Вск 05:34:38 #186 №773855 
>>773848
gcc main.o utils.o kernel.o -lpthread -lncurses -std=c11 -O2 -march=native -pipe -o ttytanks
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.o: undefined reference to symbol 'halfdelay'
/lib64/libtinfo.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: * [Makefile:9: ttytanks] Error 1

Теперь срет этим онли.
Аноним 19/06/16 Вск 06:30:27 #187 №773863 
>>773855
Попробуй перенести -lpthread -lncurses в конец команды.
Аноним 19/06/16 Вск 06:40:19 #188 №773867 
>>773845
Вот тебе мейкфайл http://pastebin.com/VA1ZEBZJ

А автор тот ещё говнокодер, да.
 Dmitriy 19/06/16 Вск 06:41:01 #189 №773869 
>>773863
gcc -std=c11 -O2 -march=native -pipe -c -o kernel.o kernel.c
gcc main.o utils.o kernel.o -std=c11 -O2 -march=native -pipe -lpthread -lncurses -o ttytanks
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.o: undefined reference to symbol 'halfdelay'

Перенес, не помогло, курсес вроде со стандатными флагами собрана, не пони маю в чем дело.
 Dmitriy 19/06/16 Вск 06:42:28 #190 №773870 
>>773869
По-моему в ней то и дело, только не понятно в какой модуль библиотеки вкючена функция halfdelay
Аноним 19/06/16 Вск 06:44:20 #191 №773873 
14663078604380.png
>>773867
>А автор тот ещё говнокодер, да.
Нет, ну вы полюбуйтесь на эту кашу из табов и пробелов
Аноним 19/06/16 Вск 06:44:39 #192 №773874 
>>773870
Я скинул выше мейкфайл, которым я смог собрать.
 Dmitriy 19/06/16 Вск 06:47:14 #193 №773876 
>>773867
Это Я и по мейк-файлу заметил.
Ну можешь пофиксить код, он сейчас пулл-реквесты принимает.
Аноним 19/06/16 Вск 06:49:40 #194 №773877 
14663081802330.png
>>773845
Эти отступы…
 Dmitriy 19/06/16 Вск 06:50:56 #195 №773879 
>>773867
Дело не только в мейк-файле, да и сним все норм было, ощибку одну и ту-же сыпит.
не может достучатся до функции halfdelay
Аноним 19/06/16 Вск 06:51:29 #196 №773880 
>>773879
У меня всё нормально собрало. Попробуй снести .o-файлы.
 Dmitriy 19/06/16 Вск 06:56:31 #197 №773881 
>>773877
Я так не могу мне наиболиее удобочитаемым кажется вариант

function (args,arg2)
{
govnocode;
govnocode++;
govno= ++govno + ++mocha;
}
GNU - style
 Dmitriy 19/06/16 Вск 06:58:02 #198 №773882 
>>773880
make clean перед каждой пересборкой делаю, не в этом дело, вот к функции доступ получить не может, блядь, сейчас наверно в интернете найду ее и добавлю непосредственно в код.
Аноним 19/06/16 Вск 07:00:46 #199 №773884 
14663088460370.png
>>773882
Ничего добавлять не надо, это из ncurses функция.

У тебя какие-то пакеты не доставлены, возможно. ncurses-dev там, всё такое.
Аноним 19/06/16 Вск 07:01:37 #200 №773886 
>>773882
>>773884
http://pubs.opengroup.org/onlinepubs/7908799/xcurses/halfdelay.html
Аноним 19/06/16 Вск 07:03:46 #201 №773888 
>>773845
http://stackoverflow.com/q/26267788
 Dmitriy 19/06/16 Вск 07:05:24 #202 №773889 
14663091247620.png
>>773884
И чего еще может не хватать?
Я конечно еще тот неосилятор, но с этим пакетом вроде все в норме.
Аноним 19/06/16 Вск 07:07:55 #203 №773890 
А вообще ты неймфаг, так что иди нахуй. Вот что.
 Dmitriy 19/06/16 Вск 07:19:18 #204 №773895 
>>773888
Спасибо антоша
-ltinfo
Помогло.
Нормальный мейкфайл?  Dmitriy 19/06/16 Вск 07:48:54 #205 №773910 
CC = gcc
OBJS = main.o utils.o kernel.o
CFLAGS = -std=c11 -O2 -march=native -pipe
LIBS = -lpthread -lncurses -lm -ltinfo
TARGET = ttytanks

$(TARGET): $(OBJS)
$(CC) $(OBJS) -o $(TARGET) $(LIBS)
all: $(TARGET)
clean:
rm $(OBJS) $(TARGET)
sageАноним 19/06/16 Вск 07:54:21 #206 №773912 
>>773910
Либы суют в LDLIBS

При линковке добавляют LDFLAGS

rm -f, чтобы не верещал, когда файлов нет.
 Dmitriy 19/06/16 Вск 08:24:43 #207 №773925 
>>773912
Поебался с ним, а он все верещит. Пусть верещит, хоть выхлоп понятный будет.
CC = gcc
OBJS = main.o utils.o kernel.o
CFLAGS = -std=c11 -O2 -march=native -pipe
LDLIBS = -lpthread -lncurses -lm -ltinfo
TARGET = ttytanks

$(TARGET): $(OBJS)
$(CC) $(OBJS) $(CFLAGS) $(LDLIBS) -o $(TARGET)
all: $(TARGET)
clean:
rm $(TARGET) $(OBJS}
Аноним 19/06/16 Вск 10:53:17 #208 №774002 
REST SDK от MS

https://github.com/Microsoft/cpprestsdk
Аноним 19/06/16 Вск 11:01:17 #209 №774008 
>>774002
Вы ошиблись тредом.
Аноним 19/06/16 Вск 11:46:36 #210 №774041 
>>773873
чё у тебя за пидорский редактор на пике
Аноним 19/06/16 Вск 13:22:52 #211 №774148 
>>773925
В каком плане верещит?
Аноним 19/06/16 Вск 14:56:09 #212 №774269 
Си это же обёртка над ассемблером? Как написать свою ось? Вот написал я хеллоуворлд, скомпилировал в бинарник. Как сделать, чтобы при включении пеки она отображалась?
Аноним 19/06/16 Вск 15:34:41 #213 №774337 
>>774269
тебе предстоит долгий путь...
Аноним 19/06/16 Вск 15:42:58 #214 №774354 
>>774269
>Как сделать, чтобы при включении пеки она отображалась
все просто, тебе нужно поместить его в определенный сектор диска который считывается биосом при загрузке, потом просто скопируешь строку в видиопамять и все
Аноним 19/06/16 Вск 16:06:56 #215 №774401 
Допустим, есть один мультиплеерный рогалик на 5 рыл.
Каждому из клиентов нужно отсылать каждую сек пакеты с обновленными координатами соперников и все такое.
Вот только я не пойму, по идее для каждого клиента нужно иметь свой поток? Или же как в данном случае поступают?
Либо же просто выделить отправку пакетов и прием в тред, отстраненный от остального игрового цикла?
Аноним 19/06/16 Вск 16:19:00 #216 №774434 
>>774401
Если тебе заведомо хватает производительности одного ядра, то лучше вообще с потоками не заморачиваться. Почти любую хуйню проще сделать в одном потоке. Но даже если писать с потоками, то по потоку на клиента это в любом случае хуита.
Аноним 19/06/16 Вск 16:21:34 #217 №774439 
>>774434
Понятно. Пожалуй, просто сделаю один поток на всех, чтобы получение/отправка не шароебилось среди остального говна.
Аноним 19/06/16 Вск 16:30:21 #218 №774454 
>>774401
еще udp пакетами клиентам ебаш
Аноним 19/06/16 Вск 16:33:07 #219 №774461 
>>774454
Чому не тисипи? Все-таки желательно проверять доставку.
Аноним 19/06/16 Вск 16:36:04 #220 №774469 
>>774461
жрет много, ну и если другие сделали ход, а с тисипи еще в процессе подтверждения? это типа риалтайм же?
Аноним 19/06/16 Вск 16:36:36 #221 №774472 
з.ы. проще засчитывать проеб клиенту по таймауту
Аноним 19/06/16 Вск 16:40:10 #222 №774478 
>>774472
По таймауту чего?
Аноним 19/06/16 Вск 16:42:24 #223 №774484 
>>774478
ну бля, тисипи тебе не гарантирует время доставки, нужно время принятия решения, вообщем подумай над этим
Аноним 19/06/16 Вск 16:43:19 #224 №774486 
з.ы. а рогалик это чтото для пидоров?
Аноним 19/06/16 Вск 16:57:07 #225 №774519 
>>774484
Окей. Щас в интернетах почитаю примеры.
Аноним 19/06/16 Вск 17:00:19 #226 №774528 
>>774519
дава, потом раскажешь, мы подрочим
Аноним 19/06/16 Вск 17:30:46 #227 №774598 
>>774528
На что? На селфи палку?
Аноним 19/06/16 Вск 17:37:18 #228 №774610 
>>774598
на тисипи и юдипи, глупыш
Аноним 19/06/16 Вск 17:54:52 #229 №774630 
что читать если не смог осилить k&r?
Аноним 19/06/16 Вск 18:00:06 #230 №774639 
>>774630
> k&r
нахуы ты эту парашу вообще читал?
Аноним 19/06/16 Вск 18:17:09 #231 №774654 
>>774630
info glibc
https://www.gnu.org/software/libc/manual/html_node/index.html
Аноним 19/06/16 Вск 18:23:31 #232 №774661 
>>774639
ну типо классика, вроде советовали ее и говорили самая годная
Аноним 19/06/16 Вск 18:24:46 #233 №774662 
>>774654
зочем?
 Dmitriy 19/06/16 Вск 18:29:52 #234 №774666 
>>774148
Что файлов нет, когда их нет)
Аноним 19/06/16 Вск 18:33:36 #235 №774670 
>>774661
нужно быть педагогом, короче начни с Праты
Аноним 19/06/16 Вск 18:34:27 #236 №774672 
>>774630
http://c.learncodethehardway.org/book/
Аноним 19/06/16 Вск 18:36:28 #237 №774675 
>>774672
там легче чем в k&r?
Аноним 19/06/16 Вск 18:38:05 #238 №774677 
>>774675
да
Аноним 19/06/16 Вск 18:38:21 #239 №774678 
>>774675
Не )
Аноним 19/06/16 Вск 18:43:55 #240 №774681 
>>774678
так что тогда читать?
Аноним 19/06/16 Вск 18:44:33 #241 №774683 
>>774681
http://c.learncodethehardway.org/book/
https://www.gnu.org/software/libc/manual/html_node/index.html
Аноним 19/06/16 Вск 21:06:35 #242 №774751 
>>774681
>http://c.learncodethehardway.org/book/

http://hentenaar.com/dont-learn-c-the-wrong-way
Аноним 19/06/16 Вск 21:11:05 #243 №774755 
>>774751
Если его хейтят, то что еще кроме K&R есть?
Аноним 19/06/16 Вск 21:18:03 #244 №774767 
>>774755
Оппост же.
Аноним 19/06/16 Вск 21:20:24 #245 №774770 
>>774751
Согласен, говно. Это был стёб, как и отсылка к glibc manuals
Аноним 19/06/16 Вск 21:22:55 #246 №774773 
>>774767
там годного вроде ничего больше нет
Аноним 19/06/16 Вск 21:46:03 #247 №774802 
>>774770
Чего ж glibc manuals не почитать, в мануалах много полезного пишут. Дреппер про память годно рассказывал http://lwn.net/Articles/250967/

Что человек он нелегкий - то кто из нас сахар
Аноним 19/06/16 Вск 21:47:21 #248 №774805 
>>774773
Пратту прочитал? Линдена прочитал?
Аноним 19/06/16 Вск 21:47:51 #249 №774808 
>>774802
Стёб в смысле отсылать учиться по этим двум источникам.

А когда ты уже не нуб, то и learnthehardway почитать невредно.
Аноним 19/06/16 Вск 21:49:30 #250 №774809 
>>774808
Когда ты уже не нуб, тебя от Зеда уже давно тошнит еще с его рельсоизрыганий.
Аноним 19/06/16 Вск 21:51:11 #251 №774812 
>>774808
Раньше учились по манам, когда энторнетов не было, получалось лучше чем сейчас.
Аноним 19/06/16 Вск 22:27:33 #252 №774838 
>>770283 (OP)
Почему функции принимают аргументы типа в "void звездочка", только для того чтобы привести их потом к нужному типу? 88 строка, например.
http://pastebin.com/79ZNZJpx
Аноним 19/06/16 Вск 23:19:39 #253 №774888 
>>774838
> Почему функции принимают аргументы типа в "void звездочка"
Потому что event_new() требует колбэка с такой сигнатурой.
Аноним 20/06/16 Пнд 07:07:50 #254 №774981 
>>774888
Почему он требует колбэка с такой сигнатурой если первой же строчкой приводит его тип к указателю на одну конкретную структуру, без вариантов?
Аноним 20/06/16 Пнд 09:15:39 #255 №775014 
>>774981
event_new принимает функцию (колбэк), которая принимает указатель на void. Делает она так потому, что вместо do_accept в нее могла бы быть передана любая другая пользовательская функция с такой же сигнатурой (в этом суть колбэков). В данном случае do_accept принимает указатель на struct event_base, но другая функция могла бы принимать указатель на другой тип. Ну и вот чтобы позволить функции event_new принять и затем передать в колбэк указатель на произвольный тип (такой, какой нужен конкретному колбэку), на месте этого типа и используется указатель на void.

Алсо, лучше бы ты спросил, для чего каст вот в этой вот строчке:
listener_event = event_new(base, listener, EV_READ|EV_PERSIST, do_accept, (void*)base);
Потому что хз зачем он там.
Аноним 20/06/16 Пнд 09:26:16 #256 №775016 
>>775014
Компилятор у автора ворнингами ругался при -Wall, вот и вставил каст.
Аноним 20/06/16 Пнд 09:55:04 #257 №775022 
>>775016
Интересно, у меня ни gcc -Wall -pedantic ни clang -Weverything -pedantic в таких случаях не ругаются.
Аноним 20/06/16 Пнд 10:24:27 #258 №775038 
>>775022
Автор мог злоупотреблять тяжелыми линтами и валграйндами
Аноним 20/06/16 Пнд 11:07:54 #259 №775058 
>>775038
Код без каста абсолютно валидный, ругаться там не на что.
Аноним 20/06/16 Пнд 11:09:36 #260 №775060 
>>774041
vim
Аноним 20/06/16 Пнд 11:11:58 #261 №775062 
>>775058
Многие писатели линтов и валграйндов, не говоря уж о коммерческих статических анализаторах кода, понимают свою задачу не в том чтобы послать нахер, потому что стандарту не противоречит, а в том чтобы указать на все места, где может быть программист допустил ошибку, потому что это место похоже на типичные ошибки, которые программисты допускают.
Аноним 20/06/16 Пнд 12:15:57 #262 №775100 
>>775062
Все это так, но в чем же типичная ошибка при передаче типизированного указателя вместо указателя на void?
Аноним 20/06/16 Пнд 12:23:42 #263 №775103 
Как перестать быть хеллоувордщиком? Я даже задачу себе не могу придумать.
Аноним 20/06/16 Пнд 12:25:38 #264 №775104 
>>775103
Напиши смс-центр.
Аноним 20/06/16 Пнд 12:25:54 #265 №775105 
>>775103
Купи ардуину и дрочи в присядку.
Аноним 20/06/16 Пнд 12:42:24 #266 №775119 
>>775016
В C преобразование любого указателя к указателю на void и обратно допустимо без всяких кастов.
Аноним 20/06/16 Пнд 12:51:16 #267 №775129 
>>775119
Но, кстати, при этом преобразование указателя на функцию, скажем такого:
int (∗f1)(struct xy ∗arg)
к такому:
int (∗f2)(void ∗arg)
недопустимо вообще.
Вопрос: разве это не бага в языке? Зачем так сделано? Раз уж разрешили неявное преобразование (void ∗) в другие указатели, то почему не разрешили преобразование таких указателей на функции?
Аноним 20/06/16 Пнд 12:53:06 #268 №775134 
>>775129
>Вопрос: разве это не бага в языке?
нет.
Аноним 20/06/16 Пнд 12:54:49 #269 №775135 
>>775134
Тогда поясни пожалуйста, для чего так сделано? В чем практический смысл? А то уже давно меня мучает этот вопрос.
Аноним 20/06/16 Пнд 12:55:57 #270 №775137 
>>775135
Что сделано? Неявное преобразование? Чтобы malloc-ом пользоваться и прочими memcpy
Аноним 20/06/16 Пнд 12:58:27 #271 №775140 
>>775137
Отсутствие преобразования (хоть явного, хоть неявного) такого указателя int (∗f1)(struct xy ∗arg) к такому int (∗f2)(void ∗arg). Учитывая тот факт, что преобразование struct xy ∗arg к void ∗arg разрешено, и даже может производиться неявно.
Аноним 20/06/16 Пнд 13:02:17 #272 №775144 
>>775135
Этот язык вообще один большой баг. Один только алиасинг чего стоит. Ты еще спроси, почему функции f1 и f2 несовместимы, если у одной параметр - указатель на struct foo { int a; }, а у другой - указатель на struct bar { int a; }.
Аноним 20/06/16 Пнд 13:05:09 #273 №775146 
14664171095180.jpg
>>775144
>Этот язык вообще один большой баг.
Аноним 20/06/16 Пнд 13:05:57 #274 №775147 
>>775144
>Ты еще спроси, почему функции f1 и f2 несовместимы, если у одной параметр - указатель на struct foo { int a; }, а у другой - указатель на struct bar { int a; }.
Очевидно, потому что у структур разные теги.
Аноним 20/06/16 Пнд 13:11:27 #275 №775156 
>>775140
>int (∗f1)(struct xy ∗arg) к такому int (∗f2)(void ∗arg)
Потому что функция хочет принимать именно указатель на struct xy, а не что-то другое.
Аноним 20/06/16 Пнд 13:14:56 #276 №775158 
>>775146
Ты отрицаешь очевидное. Например,

>>775147
А вот и нихуя. Если определения структурок видны полностью на момент вызова - функции совместимы, можно объявлять указатель int (∗ptr)(struct bar ∗) и вызывать по нему обе функции. А вот если на момент вызова одну из структурок не видно, функции уже магически перестают быть совместимыми, скастить f1 к ptr можно, а вызывать уже нельзя.
Аноним 20/06/16 Пнд 13:16:48 #277 №775161 
>>775158
>А вот и нихуя.
Что "нихуя"? foo и bar это не разные теги?
Аноним 20/06/16 Пнд 13:18:12 #278 №775163 
>>775161
Структуры с разными тегами тоже могут быть совместимыми.
Аноним 20/06/16 Пнд 13:20:02 #279 №775166 
>>775163
В стандарте сказано, что не могут. Я больше верю стандарту, чем анонимному хуйлу с бредом реформаторства.
Аноним 20/06/16 Пнд 13:22:07 #280 №775168 
>>775166
> в стандарте сказано
Сказано. C11 6.2.7 же:
> If both are completed anywhere within their respective translation units,
> then the following additional requirements apply: there shall be a
> one-to-one correspondence between their members such that
> each pair of corresponding members are declared with compatible types
> ...
Аноним 20/06/16 Пнд 13:27:18 #281 №775174 
>>775168
Угу. А перед этим предложение
> If one is declared with a tag, the other shall be declared with the same tag
Аноним 20/06/16 Пнд 13:44:11 #282 №775186 
>>775144
>Ты еще спроси, почему функции f1 и f2 несовместимы, если у одной параметр - указатель на struct foo { int a; }, а у другой - указатель на struct bar { int a; }.
Ну, по крайней мере
struct foo x = {99};
struct bar y;
y = x;
тоже выдаст ошибку. В случае же с указателем на void, указатели преобразовываются без проблем, но почему-то только если они не в составе указателей на функции.

>>775156
А когда я пишу struct xy ∗ptr = malloc(sizeof(struct xy) ∗ 10);
ptr хочет принимать в себя только указатель на struct xy, а не что-то другое? Нет, тут для void сделано исключение.
В случае же, если этот указатель на void является частью типа указателя на функцию, это исключение уже не работает. Особого практического смысла я в этом пока не вижу, а вот минусы есть: например, менее удобно реализовывать подобие интерфейсов из ООП. Так вот, почему бы это в очередном стандарте не исправить, разрешив преобразование указателей на функции, если типы всех их аргументов друг в друга преобразуются? Ведь даже с обратной совместимостью никаких проблем не будет.
Аноним 20/06/16 Пнд 13:54:32 #283 №775197 
14664200728490.gif
>>775186
Ты пытаешься найти логику в Си?

http://pastebin.com/UAQaWuWG
Аноним 20/06/16 Пнд 13:55:01 #284 №775198 
>>775186
> тут для void сделано исключение.
Для него не делали исключение. Указатель но void специально ввели, чтобы возвращать из malloc-а или принимать в memcpy.
Аноним 20/06/16 Пнд 14:10:16 #285 №775210 
>>775197
Ну, при принятии очередного стандарта, когда что-то (не) изменяют в языке, какой-то логикой наверно при этом руководствуются? Я надеюсь.

>>775198
Но почему бы тогда таким же образом не ввести правило, чтобы можно было без проблем присваивать указатели на функции, если списки аргументов у них отличаются только тем, что в одном случае аргумент указатель на void, а в другом – указатель на какой-то полный тип? Все равно ведь это ограничение легко обходится с помощью функции-обертки (и при этом по стандарту, не вызывая UB), так почему бы не избавить программистов от лишнего бойлерплейта?
Аноним 20/06/16 Пнд 14:11:29 #286 №775212 
>>775210
Это новая мода — троллинг тупостью?
Аноним 20/06/16 Пнд 14:19:49 #287 №775219 
>>775168
И вообще, зачем ты полез в раздел про определения типов в различных translation unit. В стандарте есть место, где совсем явно сказано, что если разные теги — то это разные типы.
Аноним 20/06/16 Пнд 14:23:49 #288 №775223 
>>775212
Я не знаю, где ты тут видишь троллинг или тупость. Вызов функции, принимающей (по факту) указатель на некий тип, через указатель на функцию, принимающую указатель на void является повсеместной практикой (те же коллбэки, ООП), без которой нормальное программирование на C было бы невозможным. Я задался вопросом, по какой именно причине связанные с этими практиками неудобства еще не пофикшены в стандарте? Эти причины пока никто толком не смог объяснить.
Аноним 20/06/16 Пнд 15:41:20 #289 №775280 
>>775223
http://www.open-std.org/jtc1/sc22/wg14/
Ну накатай им свои претензии. Будто цель твоих постов не троллинг
Аноним 20/06/16 Пнд 16:38:15 #290 №775317 
>>775280
Ладно, ты меня раскусил.

Смотрите, что нашел только что:
http://loci-lang.org/LanguageGoals.html
Кто-нибудь что-нибудь знает про эту хуйню?
sageАноним 20/06/16 Пнд 22:40:50 #291 №775517 
Уже обсуждали очередную попытку Microsoft испортить язык? https://github.com/Microsoft/checkedc/releases/download/v0.5-final/checkedc-v0.5.pdf
Аноним 21/06/16 Втр 10:24:15 #292 №775801 
Посоны, экспресс вопрос:
приведение переменной к void
uint32_t temp =0;
(void)(temp);
освободит ее место?
Аноним 21/06/16 Втр 10:30:26 #293 №775805 
>>775801
Конечно нет.
Аноним 21/06/16 Втр 10:38:42 #294 №775810 
>>775805
А в чем тогда смысл такого каста?
Аноним 21/06/16 Втр 10:47:28 #295 №775816 
>>775810
Если у тебя в программе есть переменная, но по каким-то причинам ты временно её не используешь, компилятор будет выдавать warning'и, что типа у тебя лишняя переменная. Если кастануть такую неиспользуемую переменную в void, то компилятор заткнется. А во время компиляции оптимизатор может потом ее и выкинуть в общем-то.
Аноним 21/06/16 Втр 11:46:39 #296 №775838 
>>775517
А уже есть люди, которые уже перекатились на С11?
Мне казалось, что как ни крути рулетку, дрочка на С89 никуда не денется.
Аноним 21/06/16 Втр 11:57:29 #297 №775850 
>>775838
Что значит "перекатились"?

"Программистов на одном языке" было мало, теперь еще и "программисты на одной версии одного языка" появились?
Аноним 21/06/16 Втр 12:06:15 #298 №775856 
>>775850
Не, в смысле используют новые фичи. Анонимные структуры там, многопоточность в стандартной поставке, более фичастный юникод. Хотя многим приложениям нафиг многопоточность не нужна. Да и в гуестроении своя атмосфера.
В общем энивей MS в этом документе усложняет язык, делая этакий С++ Lite, а это нафиг не нужно.
Аноним 21/06/16 Втр 12:09:39 #299 №775860 
>>775856
По сравнению с тем сколько MS всего с С++ сделала, сишникам еще повезло.
С++ Managed, C++ CLI, что там еще было?
Аноним 21/06/16 Втр 12:17:48 #300 №775864 
>>775860
Хз, на крестах не писал никогда.
Аноним 21/06/16 Втр 13:19:48 #301 №775901 
>>775860
CLI и Managed это разве не одно и то же?
Аноним 21/06/16 Втр 13:39:52 #302 №775921 
>>775901
Одно, но не совсем, иначе это был бы не MS

> Новый набор изменений называется C++/CLI и полностью поддерживается Visual Studio 2005. Таким образом Managed C++ считается устаревшей спецификацией, и код, написанный таким образом, рекомендуется переписать.

То что я сразу не вспомнил называется C++ CX
Аноним 21/06/16 Втр 13:40:58 #303 №775922 
>>775864
> "Программистов на одном языке" было мало
Аноним 21/06/16 Втр 13:52:41 #304 №775929 
>>775921
Все равно, что новомодный CX, что CLI, почти не используются, для C/С++ сейчас все используют Qt
Аноним 21/06/16 Втр 14:55:03 #305 №775961 
>>775922
Я не слежу, что там в инфраструктуре C++ разработки под винду происходит.
Вот в сишке все просто. Есть autotools, есть cmake, есть meson из систем сборки. Из gui gtk и efl. Ну и до кучи либ для тестирования, производительных серверов, различные бд, вот это вот все.
sageАноним 21/06/16 Втр 19:30:56 #306 №776198 
>>775838
> А уже есть люди, которые уже перекатились на С11?
Да. У нас на работе новые проекты на C11, старые на C99, а на C89 только форкнутый опенсорс.
Аноним 21/06/16 Втр 19:41:56 #307 №776223 
>>775856
> Анонимные структуры
Как расширение GNU, все, кому надо было, использовали задолго до C11
> многопоточность в стандартной поставке
По стандарту опциональна. И никто не поставляет, ни MS, ни GNU. Да и нахуй не нужны C11-треды при живых pthreads.
> более фичастный юникод
Хуичастый. Нормализация есть хоть в твоём "фичастом"?
sageАноним 21/06/16 Втр 19:54:34 #308 №776245 
>>775856
>>776223
Только не пойми неправильно. Я осознаю, что стандартизация часто это закрепление сложившейся практики. Это и было в случае с C11 (да и 99 тоже). Большая часть новых "фич" уже давно были реализованы в расширениях.

В этом радикальное отличие от выхода стандарта C++11.
Аноним 21/06/16 Втр 20:01:28 #309 №776262 
Что вписать в а чтобы иф срабатывал?
http://ideone.com/sNY8Da
Аноним 21/06/16 Втр 20:02:56 #310 №776266 
>>776223
>pthreads
Которые в Линупсе через Дреппера сделаны.
sageАноним 21/06/16 Втр 20:05:38 #311 №776268 
>>776266
Сказать-то что хотел?
Аноним 21/06/16 Втр 20:18:35 #312 №776295 
>>776262
> Что вписать
https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
Аноним 21/06/16 Втр 20:29:05 #313 №776325 
>>776295
Там много читать. Лучше скажи как узнать правильное значение а при котором иф будет работать.
Аноним 21/06/16 Втр 20:42:36 #314 №776352 
>>776262
> float b
> b == 3.141593

H@H@H@
Аноним 21/06/16 Втр 20:44:21 #315 №776355 
>>776352
Вижу. Сажи как исправить
Аноним 21/06/16 Втр 21:09:09 #316 №776371 
>>776325
В общем случае ты не можешь сравнить два float, но ты можешь удостовериться, что они отличаются не более чем на некоторое число. Это число зависит от задачи. Вспоминай школу - округление, приближенные вычисления, погрешность - вот это все. И втыкай, ну хотя бы if (fabs(b - 3.141593) < 1.0f) printf("В военное время значение пи может достигать четырех\n");
Аноним 21/06/16 Втр 21:55:41 #317 №776408 
>>776198
>проекты
в /pr нада писать "проЭкты", баран
Аноним 21/06/16 Втр 21:57:23 #318 №776412 
>>775860
сейчас есть расширение с++ для более удобной работы с winrt и uwp
sageАноним 21/06/16 Втр 22:27:55 #319 №776445 
>>776408
Так это ж не мои прожекты.
Аноним 22/06/16 Срд 13:17:58 #320 №776865 
Как конпелировать с Clang-LLVM на винде, не имея при том всего скама вроде цугвина, мингв, тдм-гцц, и.т.д, чтобы чистый Clang-LLvm с его либой под венду
Аноним 22/06/16 Срд 13:38:51 #321 №776901 
>>776865
Да
Аноним 22/06/16 Срд 14:40:54 #322 №777000 
>>776865
никак
либо с мингв
либо в vs2015 ставишь фронэнд шланга, а бекенд будет майкрософт
Аноним 22/06/16 Срд 16:50:21 #323 №777152 
котаны, нужно перенести в условие цикла, есть:

while (1) {
if (a||b||c) break;
}

получаю

while (!(a||b||c)) {
}

так вот, в первом случае, если а истино, то условие остальной части не проверяется, а вот во вторм случае, чета не пойму...
Аноним 22/06/16 Срд 16:52:09 #324 №777153 
>>777152
з.ы. типа равно оно while(!a&!b&!c) что не оптимально
Аноним 22/06/16 Срд 16:55:14 #325 №777159 
>>777153
Вполне оптимально (только &&, а не &, чтобы лениво было). Скорее всего, даже скомпилится в тот же самый код, как и с if (...) break.
Аноним 22/06/16 Срд 16:56:33 #326 №777163 
>>777152
>while (1)
Пиздец.
Аноним 22/06/16 Срд 16:56:50 #327 №777164 
>>777152
>>777153

Не & а &&.
Что неоптимально тебе?
Аноним 22/06/16 Срд 17:01:48 #328 №777167 
>>777164
>>777159
очепятка, но с логическим И нужна проверка всех условий, а в случае с ИЛИ не всех. и да, на конпелятор не хочу надеятся, нужно что бы логика была наглядной
Аноним 22/06/16 Срд 17:05:01 #329 №777173 
>>777167
Это ты тут недавно switch() оптимизировал?

> с логическим И нужна проверка всех условий
Чушь собачья. Первое же встреченное ненулевое значение превратится в нулевое, и справа && уже ничего вычислять не будет.

Алсо, да, я был прав. Даже древний компилятор из Visual Studio 6.0 собирает из этих двух вариантов абсолютно идентичный (совпадает до последнего бита!) код.
Аноним 22/06/16 Срд 17:06:47 #330 №777176 
Привет, ребят.
Перевожу проект на vcc14, столкнулся с проблемой. Есть функция, которая считает количество использованной приложением памяти. Вот часть кода:

http://pastebin.com/qHBEcKQZ

По итогу, оно входит в infinite loop на HeapWalk, и каждый раз записывает одно и то же значение в heapinfo. Может, кто знает, в чем может быть проблема?
Аноним 22/06/16 Срд 17:07:32 #331 №777179 
>>777173
ага и нашел недочеты, битовая версия дает пасасать
Аноним 22/06/16 Срд 17:08:41 #332 №777181 
>>777173
>Первое же встреченное ненулевое значение превратится в нулевое
похоже на то
Аноним 22/06/16 Срд 17:09:27 #333 №777183 
>>777173
>древний компилятор из Visual Studio 6.0
Он уже был очень хороший.
Вот Microsoft QuickC 2.x тебе бы наоптимизировал.
Аноним 22/06/16 Срд 17:11:03 #334 №777185 
>>777179
Ты подписывай свои сообщения уже.
Можешь псевдонимом "ЯлублуВатком"
Аноним 22/06/16 Срд 17:11:47 #335 №777186 
>>777185
зачем?
Аноним 22/06/16 Срд 17:12:47 #336 №777188 
>>777183
Максимум была бы разница в JZ/JNZ.

>>777176
На реальном проекте тестируешь? Повреждение кучи уже исключил?
Аноним 22/06/16 Срд 17:14:39 #337 №777191 
>>777186
Чтоб душевных сил на тебя не тратить за явной бесперспективностью диалога.
Аноним 22/06/16 Срд 17:15:26 #338 №777192 
>>777191
не трать, можешь даже сходить нахуй.
Аноним 22/06/16 Срд 17:18:25 #339 №777195 
>>777185
>ЯлублуВатком
да и ты не привел слив Ваткома перед GCC
Аноним 22/06/16 Срд 17:19:34 #340 №777197 
>>777188
На реальном.
Пытаюсь разобраться. Знаю, что скорее всего, повреждение будет из-за того, что указатель где-то приводится не к uintptr_t, а к int, но хз, где именно.

Вообще, легаси - говно. Хуй знает, как обнаружить повреждение.
Аноним 22/06/16 Срд 17:25:42 #341 №777208 
14666055426890.png
>>777195
> не трать
>да и ты не привел
Не буду.
Аноним 22/06/16 Срд 17:25:47 #342 №777209 
14666055480180.png
>>777197
Собрать гцц c -fsanitize=address нереально? Тогда остается gflags. Какие галки ставить, сам разберешься.
Аноним 22/06/16 Срд 17:29:21 #343 №777215 
>>777208
>Не буду.
вот и правильно, гцц то уже не спасти.
Аноним 22/06/16 Срд 21:32:58 #344 №777439 
14666203789340.jpg
Ура. Я нашел тред про С. Не буду вас томить. а сразу спрошу - что за херню от меня требует компилятор?
Аноним 22/06/16 Срд 21:51:21 #345 №777456 
>>777195
Нахуй кому-то делать ради тебя что-то? Ватком развивался мелкой командой и давно заброшен, GCC живёт и развивается гигантским коммунити, и там уже не первый год идёт рефакторинг – код не ухудшается день ото дня как ты предполагаешь.
Аноним 22/06/16 Срд 22:34:49 #346 №777510 
>>777456
>Нахуй кому-то делать ради тебя что-то
ты же должен признать, что обосрался. ватком заброшен верно, но и даже такое старье не проигрывает живущему и развивающемуся гигантским коммунити гцц, выволд - гцц делают уебаны
Аноним 22/06/16 Срд 22:39:00 #347 №777515 
>>777439
инвалид поинтер инициалазер
Аноним 22/06/16 Срд 22:39:04 #348 №777516 
>>777439
Объявление disp_hardware_t покажи.
И покажи что такое DISP_D4_PORT.
Аноним 22/06/16 Срд 22:45:23 #349 №777525 
>>777516
typedef struct
{
GPIO_TypeDef *port;
GPIO_Pin_TypeDef pin;
} disp_hardware_t;
Аноним 22/06/16 Срд 22:46:56 #350 №777528 
>>777516
> что такое DISP_D4_PORT.
#define DISP_D4_PORT GPIOC
Аноним 22/06/16 Срд 22:56:33 #351 №777537 
>>777525
>GPIO_TypeDef *port;
Звездочка ни на что тебе не намекает?

> #define DISP_D4_PORT GPIOC
Теперь тоже самое для GPIOC
Аноним 22/06/16 Срд 23:01:38 #352 №777541 
>>777510
В чем оно не проигрывает-то? Не поддерживает и 10-й части платформ GCC? Не имеет выборной поддержки любого стандарта, причём даже с расширениями? Сасай по оптимизации?

Блять, ну лол, он выигрывает только в твоём слабоумном мозгу.
Аноним 22/06/16 Срд 23:02:39 #353 №777542 
>>777439
Ламповый ИАР. Как же я его ненавижу!
Аноним 22/06/16 Срд 23:08:32 #354 №777550 
>>777537
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)

#define GPIOC_BASE (uint16_t)0x500A

>>777542
STVD+Cosmic

Если бы я еще был бы программистом, то сам бы разобрался, а так как я криворукий уебан - приходится вот вас мучить.
Аноним 22/06/16 Срд 23:14:17 #355 №777558 
>>777541
>Сасай по оптимизации?
давай пруфы
Аноним 22/06/16 Срд 23:16:41 #356 №777562 
>>777550
>STVD+Cosmic
Это же ещё хуже!
Stm8 чтоли, раз такой больной выбор IDE?
Аноним 22/06/16 Срд 23:27:05 #357 №777568 
>>777558
Давай лучше ты. Я вот не верю что твоё засохшее говно выиграет топовый компилятор в таком сражении.
Аноним 22/06/16 Срд 23:40:01 #358 №777578 
>>777568
я уже выкладывал, ходя там есть интересные недочеты
Аноним 23/06/16 Чтв 07:34:00 #359 №777716 
>>776266
>>pthreads
>Которые в Линупсе через Дреппера сделаны.
Как будто C11-threads не поверх pthreads будут сделаны.
Аноним 23/06/16 Чтв 07:42:34 #360 №777720 
>>777562
Ага, она родимая. Разобрался, файл с дефайнами забыл включить. Спасибо всем ответившим.
Аноним 23/06/16 Чтв 10:52:27 #361 №777814 
>>770283 (OP)
Ну-ка быстро объяснили мне! Правильно так
#define YOBA 1
или так
const int YOBA = 1;
?
Я слышал, что типа во втором случае может быть выделена память и создана переменная, поэтому он сосет. Так ли это?
Аноним 23/06/16 Чтв 11:02:15 #362 №777826 
>>777814
да
Самый важный выбор в моей жизни Аноним 23/06/16 Чтв 11:09:38 #363 №777829 
Что мне ставить Cygwin или Mingw?
Аноним 23/06/16 Чтв 11:10:12 #364 №777830 
>>777829
Убунту на виртуалку накати.
Аноним 23/06/16 Чтв 11:12:29 #365 №777833 
>>777826
А тут какие-то петуханы говорили, что #define для констант использовать нельзя. Почему?
Аноним 23/06/16 Чтв 11:14:21 #366 №777836 
>>777814
В первом случае препроцессор на этапе компиляции подставит вместо йобы литерал, и его использование будет бесплатным (ничего нигде не надо выделять). Во втором случае, если не брать в расчёт оптимизации компилятора, то на стеке появится переменная i, равная 1.
Аноним 23/06/16 Чтв 11:14:53 #367 №777837 
>>777830
Почему нельзя попердолится с цугвином или мингв?
Аноним 23/06/16 Чтв 11:15:47 #368 №777838 
14666697478060.png
>>777829
В десятке называется "подсистема Linux" и включается так:
https://habrahabr.ru/company/eset/blog/281418/
Аноним 23/06/16 Чтв 11:16:55 #369 №777839 
>>777836
А если так const register int YOBA = 1?
Аноним 23/06/16 Чтв 11:18:24 #370 №777841 
>>777837
Зачем городить костыли, если есть нормальное решение?
Хочешь удобства линукс но без линукс?
Аноним 23/06/16 Чтв 11:19:07 #371 №777842 
>>777839
Компиляторы очень вольно обращаются с модификатором register.
Аноним 23/06/16 Чтв 11:21:43 #372 №777844 
>>777838
А там можно gcc накатить?
Аноним 23/06/16 Чтв 11:23:25 #373 №777846 
>>777838
Кстати, там есть GCC и Make. Получается, что Microsoft вертит Штульмана на хую? Ведь по GPL нельзя использовать GPL софт в качестве компонента для несвободной системы.
Аноним 23/06/16 Чтв 11:24:35 #374 №777848 
>>777844
Он там есть. Еще make, vi, возможно еще какие-то утилиты из Линукса.
Аноним 23/06/16 Чтв 11:25:02 #375 №777850 
>>777846
Всем поебать на GPL и прочие недоразумения
Аноним 23/06/16 Чтв 11:26:02 #376 №777852 
>>777839
Однохуйственно. register лишь даёт рекомендацию компиляторам (которые, тащем-та, давно уже задрочились класть хуй на рекомендации и делать заебись автоматически) хранить переменную в одном из регистров. Напротив, если она не хранится в регистре, значит, она (или указатель на неё) хранится на стеке, а указатель на вершину стека -- в регистре.
Аноним 23/06/16 Чтв 11:26:35 #377 №777855 
>>777850
"ШВАБОДКА!" раздался пронзительный голос со стороны FSF...
Аноним 23/06/16 Чтв 11:35:57 #378 №777867 
>>777839
слишком по петуховски, есть божественные дефайны, бесплатно и без смс
Аноним 23/06/16 Чтв 11:37:16 #379 №777869 
>>777850
но как... ращве гпл питухи не отстаивают свою права в суде? развели бы мелкопидоров на кучу лямов
Аноним 23/06/16 Чтв 11:39:12 #380 №777872 
>>777846
Никто им не мешает выложить исходники линуховой подсистемы, что они и сделают. Она не слинкована статично с вендой, так что все ок.
Аноним 23/06/16 Чтв 11:45:27 #381 №777882 
>>777867
Просто неоднократно слышал, что #define это ТИП НИПРАВИЛЬНА и нужно через const. Почему - не объясняют. Я всегда константы объявлял дефайном, не вижу в этом ничего плохого.
Аноним 23/06/16 Чтв 11:45:46 #382 №777883 
кста, я вот пилю свой проджект и хочу его открыть, а в дальнейшем и монетизировать, но я не хочу что бы проприетарные пидоры его или часть кода бесплатно использовали в своих продуктах, как мне его залецензить, чтобы не пасасать?
Аноним 23/06/16 Чтв 11:47:15 #383 №777885 
>>777872
Это верно для LGPL, а GCC и Make под GPL.

>>777869
Вот и непонятно, куда они смотрят? В Mac OS X кстати раньше тоже использовался GCC (сейчас сменили на Clang).
Аноним 23/06/16 Чтв 11:48:12 #384 №777887 
>>777882
тебе уже объяснили преимущество дефайнов, всегда есть адеты и хейтеры
Аноним 23/06/16 Чтв 11:49:03 #385 №777891 
>>777883
Двойная лицензия, как раньшу у Qt: GPL/коммерческая. Проприетарщикам придется отстегивать бабло либо открывать свой собственный код.
Аноним 23/06/16 Чтв 11:49:52 #386 №777893 
>>777885
>Вот и непонятно, куда они смотрят
может мелкософт занесла котлету главарям гпл, а макакам как всегда
Аноним 23/06/16 Чтв 11:51:57 #387 №777896 
>>777891
Пиздишь как Троцкий.
Аноним 23/06/16 Чтв 11:52:05 #388 №777897 
>>777891
но кьют вроде же статическую линковку не позволяет в комерческих проектах. и да, есть ли шаблон лицензии? я один хуй ее с нуля не напишу
Аноним 23/06/16 Чтв 11:53:22 #389 №777899 
>>777893
Разве дедушка Штульман может продаться проприетарщикам? Он же не такой!
Аноним 23/06/16 Чтв 11:54:36 #390 №777901 
>>777897
Кьют идет по LGPL, что значит - ты обязан обеспечить возможность ковырять/изменять/изучать кьют в проге. Проще всего это добивается динамической линковкой - кьют это dll/so шки, но в принципе - ты можешь сделать и статику, но тогда сам ебись с механизмом, которым ты сможешь обеспечить это требование.
Аноним 23/06/16 Чтв 11:57:07 #391 №777906 
>>777897
За бабло позволяет. У них двойная лицензия, либо покупаешь, либо LGPL (раньше была GPL).

>>777896
https://en.wikipedia.org/wiki/Qt_(software)
https://www.qt.io/licensing/
Аноним 23/06/16 Чтв 11:58:21 #392 №777907 
>>777906
> либо LGPL
LGPL не обязывает проприетарщиков открывать свой код.
Аноним 23/06/16 Чтв 11:58:37 #393 №777908 
>>777906
ну за бабло то понятно, вот в линковке там вся и разница, как я понял
Аноним 23/06/16 Чтв 12:01:02 #394 №777909 
>>777907
там помойму все открытые лицензии нихуя пропреитарщиков ничем не обязывают, для этого гитхаб и придумали, что бы залез, скопипастил половину, вставил в свой проект и продал, а авторам гитохуй
Аноним 23/06/16 Чтв 12:03:06 #395 №777913 
>>777909
Большой кусок частично не скопипастишь - заебешься.
Аноним 23/06/16 Чтв 12:04:29 #396 №777916 
>>777907
Раньше была просто GPL.
Аноним 23/06/16 Чтв 12:05:25 #397 №777920 
>>777916
Это было очень сильно раньше, как бы вообще не до 4й ветки.
Аноним 23/06/16 Чтв 12:06:21 #398 №777922 
>>777913
ну я том, что не зря этот гитхаб так навязывают
Аноним 23/06/16 Чтв 12:07:37 #399 №777924 
>>777920
На Qt4 сменили.
Аноним 23/06/16 Чтв 12:10:26 #400 №777928 
>>777924
Нагуглил уже - на 4.5 добавили, в 2009м. Короче, 8 лет назад.
Вот тогда Qt то и взлетел, чтоб за пределами линупса и кед.
Аноним 23/06/16 Чтв 12:13:21 #401 №777934 
>>777846
> Ведь по GPL нельзя использовать GPL софт в качестве компонента для несвободной системы.
Это какая-то GPL из твоего манямирка.
Аноним 23/06/16 Чтв 12:15:12 #402 №777936 
>>777934
Ну, тащемто он прав, не?
GPL обязывает открывать сорцы проги, которые изают GPL-код. Она же вирусная.
Аноним 23/06/16 Чтв 12:16:57 #403 №777938 
>>777936
Ну так там ставится софт из убунту-репозиториев, для которого все исходники есть.

А драйверы в ядре и проч. для поддержки запуска этого софта GPL-сырцов не используют.
Аноним 23/06/16 Чтв 12:20:03 #404 №777943 
>>777938
Ты не понел. Ты не можешь написать прогу и не открыть ее код, если она использует GPL либу.
(То есть конечно можешь, но это будет нзаконно). И насрать, на то что чужие исходники ты приложил - ты обязан выложить и свои, или не использовать. В этом вся суть GPL.

Не устраивает - покупай проприетарь, линкуй динамически с LGPL, или ищи BSD (в которой хоть дрочи вприсядку - никаких ограничений)
Аноним 23/06/16 Чтв 12:21:26 #405 №777947 
>>777943
И к чему ты это всё написал? Где нарушение GPL при запуске линуксовых прог под виндой?
Аноним 23/06/16 Чтв 12:21:28 #406 №777948 
>>777938
Разве драйверы не динамически линкуются?
Аноним 23/06/16 Чтв 12:22:20 #407 №777950 
>>777948
Ну можно и так сказать.
Только линкуются они с ntoskrnl
Аноним 23/06/16 Чтв 12:22:52 #408 №777952 
>>777947
Ты дебил чтоле? У линуксовых прог - код открытый.
Аноним 23/06/16 Чтв 12:23:25 #409 №777954 
>>777952
И?
Аноним 23/06/16 Чтв 12:24:56 #410 №777956 
>>777954
Хуи, блять.
Винда запускает БИНАРЬ, и КОД никаким образом их не использует.

А вот выдрать кусок ядра линукса - например сетевой стек - и вставить в код винды - ты не можешь.
(Поэтому в винде сетевой стек спиздили из BSD)
Аноним 23/06/16 Чтв 12:26:11 #411 №777959 
>>777956
Пиздец ты долбоёб. Нахуй ты мне объясняешь, что нарушения GPL нет, когда я с этим не спорю.
Аноним 23/06/16 Чтв 12:27:03 #412 №777960 
>>777959
Это ты долбоеб. Ой все, уебывай, больше не кормлю.
Аноним 23/06/16 Чтв 12:27:53 #413 №777962 
>>777956
>(Поэтому в винде сетевой стек спиздили из BSD)
пруфов, конечно, нет
Аноним 23/06/16 Чтв 12:45:13 #414 №777985 
>>777960
Т.е. нарушений GPL нет.
Аноним 23/06/16 Чтв 22:46:39 #415 №778440 
Ваш срач услышан в шапке

> Компания Red Hat объявила об изменении лицензии на DLL-библиотеку Cygwin, эмулирующую базовый Linux API в Windows и позволяющую с минимальными изменениями собирать созданные для Linux программы. Вместо лицензии GPLv3+ библиотека отныне распространяется под лицензией LGPLv3+, которая позволяет связывать код с приложениями под любыми лицензиями, в том числе с проприетарным ПО.

> Кроме того, Red Hat отказывается от поставки коммерческой лицензии на Cygwin, так как LGPL позволяет обойтись без лицензионных исключений, и больше не будет требовать от разработчиков, присылающих изменения в Cygwin, подписания соглашения о передаче имущественных прав на код. Соответственно процедура участия в разработке существенно упрощается и лишается бумажной волокиты, отпугивающей многих разработчиков.

> Одновременно доступен выпуск Cygwin 2.5.2, в котором отражено изменение лицензии и прекращена поддержка Windows XP и Windows Server 2003. Изменение лицензии произведено только для библиотеки, утилиты и другие компоненты пакета Cygwin (cygserver, cygpath, regtool и т.п.) остались под лицензией GPLv3+.
Аноним 23/06/16 Чтв 23:28:58 #416 №778470 
>>770283 (OP)
Анонище, расскажи, что ты пишешь на сишке? Или хочешь написать?
Аноним 24/06/16 Птн 00:29:05 #417 №778499 
>>778440
У цугвина способ другой. Там перекомпиляция требуется специально под cygwin, а в десяточке сделали трансляцию системных вызовов, что позволяет просто брать бинарь с его окружением и запускать, не рассказывая, что ядро не его родное.
Аноним 24/06/16 Птн 01:15:32 #418 №778508 
>>778470
Ну, например на прошлой неделе написал несложное ESME для использования в одном проекте на работе (работаю не программистом, но иногда что-то такое пилю), в свободное время потихоньку пишу свой игровой движок.
Что писать мне без разницы, главное, чтобы у этого в итоге было хоть какое-нибудь применение.
sageАноним 24/06/16 Птн 02:36:07 #419 №778536 
>>777846
> Ведь по GPL нельзя использовать GPL софт в качестве компонента для несвободной системы.
Ты не понял, что в GPL подразумевается под "компонентом системы". Программы, которые ты ставишь на винду — это не компоненты винды.

Тем более, что microsoft не распространяет софт. Он подтягивается из убунтовых репов.
sageАноним 24/06/16 Птн 02:38:09 #420 №778539 
>>778440
Лол. Красношляпые поняли, что их платная цацка теперь нафиг не нужна с появлением подсистемы Linux в Windows. И стали раздавать её бесплатно всем, а не только опенсорсу.
Аноним 24/06/16 Птн 13:30:40 #421 №778703 
>>778508
>Что писать мне без разницы, главное, чтобы у этого в итоге было хоть какое-нибудь применение.
два чаю
Аноним 24/06/16 Птн 15:11:04 #422 №778780 
>>777960
Всё никак не могу догнать эту разницу между LGPL и GPL.
Есть библиотека. Распространяется по LGPL. Можно мне её использовать в своём платном приложении с закрытым исходным кодом и если можно то как?
Аноним 24/06/16 Птн 15:24:46 #423 №778788 
>>778780
наверное так же как и все остальные поступают, линкуешь и молчишь
Аноним 24/06/16 Птн 19:16:15 #424 №778922 
14667849753260.jpg
Я вам мемес принес.
Аноним 24/06/16 Птн 19:22:15 #425 №778928 
14667853354200.jpg
>>778922
Последняя неправильная
Аноним 24/06/16 Птн 19:45:24 #426 №778939 
>>778928
Хипстеры же. Такие же как сейчас на NodeJS хуякают.
Хуя-хуяк и в продакшн.
Недоязык, недоОС.
Аноним 24/06/16 Птн 19:49:16 #427 №778942 
>>778939
> Недоязык
Мне, простому колхознику, и этот недоязык силов не хватает понять.
Аноним 24/06/16 Птн 20:04:00 #428 №778951 
>>778440
Суки, ЭксПи не пожалели.
:(
Аноним 24/06/16 Птн 20:51:04 #429 №778999 
>>778942
Для колхозников есть Delphi.
Аноним 24/06/16 Птн 20:58:53 #430 №779009 
>>778999
Иди нахер, назло тебе Си выучу.
Аноним 24/06/16 Птн 21:02:38 #431 №779012 
>>779009
Delphi один раз выучил, и за вечер клепаешь автоматизацию автосервиса, получаешь бабло.
А к Си тебе придется еще учить C++, потом Qt, потом SQLite, потом месяц с этим всем пердолиться, а результат такой же.
Аноним 24/06/16 Птн 21:05:28 #432 №779013 
>>779012
Мне одного Си хватит. Я чтоб с контроллерами пердолиться.
Аноним 24/06/16 Птн 21:45:57 #433 №779066 
>>779013
Для этого Си не надо знать. Битшифтики, ножку 11 поднял, два байта в порт 22 переслал.
Аноним 24/06/16 Птн 21:52:32 #434 №779083 
>>779066
Интересные у тебя представления об этой сфере.
Аноним 24/06/16 Птн 21:54:27 #435 №779086 
>>779083
Ардуинщик наверное.
Аноним 24/06/16 Птн 22:16:13 #436 №779105 
14667957738760.jpg
>>770283 (OP)
У меня есть значение цвета в виде INT. У меня есть значение сдвига цвета, тоже в виде INT. Т.е. загружая палитру, я выполняю такой кусок кода:
for (i = 0; i < palette_size; i++) vram_palette = rom_palette + shift;
Как сделать так, чтобы цвет с нулевым значением так и оставался нулевым, без сдвига? Обыкновенный IF мне кажется слишком медленным, как и такая хуита:
sign = (color > 0) — (color < 0);
color = color + shift * sign;
Аноним 24/06/16 Птн 22:17:40 #437 №779106 
>>779105
Блядь, макаба форматирование пожрала. Вот на пастебине, короче:
http://pastebin.com/tVQTdWk4
Аноним 24/06/16 Птн 22:51:17 #438 №779123 
>>779083
Думаешь он будет DSP программировать и встроенные в кристалл мини-FPGA ловко вертеть на хую, устраивая в них dynamic offloading критических частей сложнейших алгоримтов?
Хрен там, будет байтики между портами возить на тележке и закатывать солнце вручную.
Аноним 25/06/16 Суб 01:25:24 #439 №779204 
14668071241520.png
https://github.com/nim-lang/Nim/wiki/Nim-for-C-programmers
Аноним 25/06/16 Суб 01:27:52 #440 №779205 
Посоветуйте книги по обработке сигналов для ньюфагов.
Аноним 25/06/16 Суб 08:07:58 #441 №779279 
>>779123
> stm32
> байтики на тележке
ню-ню
Аноним 25/06/16 Суб 12:19:30 #442 №779372 
>>779279
Прямая Память-Тележка Двойной Емкости - это ведь совсем не тележка!
Аноним 25/06/16 Суб 15:46:48 #443 №779504 
Говноеды, что вы там пишете под МК?
Аноним 25/06/16 Суб 16:51:28 #444 №779577 
>>779504
Драйвер вибратора твоей мамки.
Аноним 26/06/16 Вск 07:40:33 #445 №780042 
14669160331670.png
А что тут не так?
Мимо проходил

Аноним 26/06/16 Вск 11:55:50 #446 №780153 
>>780042
Ты билд делал?
Он нормально забилдился?
Прошлый запущенный процесс отладки завершен?
Почему у меня капча из хуйцов?
Аноним 26/06/16 Вск 12:06:24 #447 №780164 
>>777814
Нет, это ты сосешь.

Второй случай нужен, чтобы держать данные ридонли-секции.

Это может быть полезно, если ты хочешь разместить конфигурацию портов микроконтроллера в виде массива структур во флешь-памяти и конфигурировать их циклом, в котором обходится каждая структура.

Работать будет чуть медленнее (что практически не важно, ибо подобная операция выполняется не часто), но и места займет меньше.

Аналогично можно делать таблицы виртуальных методов, конечные автоматы и прочие ABI с размещением во флеш.
Аноним 26/06/16 Вск 12:09:00 #448 №780166 
>>777885
Ну, убунта же делала linux.sys...

И никто тебе не запрещает поставить швабодный gcc на венду....


Так что вся эта подсистема - тупо пакет швабодки, который можно поставить на венду.
покормил
Аноним 26/06/16 Вск 14:19:14 #449 №780268 
14669399549570.png
Анон, хочу изучать си, но споткнулся на первом же шаге из Кернигана и Ричи. Вот я написал код для вывода "хелло ворлд".
Что мне теперь делать? Как запустить программу? В гугле пишут нажать "начать отладку", но у меня она серая.
Аноним 26/06/16 Вск 14:24:58 #450 №780279 
>>780268
Левее "Сброка", собери, откомпилируй и радуйся жызни.
Аноним 26/06/16 Вск 14:31:41 #451 №780290 
14669407016430.png
>>780279
Что-то не выходит
Аноним 26/06/16 Вск 14:35:32 #452 №780298 
>>780290
Ты ; проебал после вызова pritf
Аноним 26/06/16 Вск 14:36:13 #453 №780300 
Объясните, нахуя в каждом Win32 приложении должен быть цикл обработки сообщений? Его задача заключается в том, что функция GetMessage достает из системной очереди приложений очередной сообщение и передает его в DispatchMessage, где производится поиск оконной процедуры, которой предназначено сообщение, и этой процедуре отправляется данное сообщение.

Но нахуя это делать в каждом приложении? Пусть, например, эксплорер достает все приложения из системной очереди и передает их нужным оконным процедурам.
Аноним 26/06/16 Вск 14:36:38 #454 №780301 
>>780300
>все приложени
Все сообщения.
быстрофикс
Аноним 26/06/16 Вск 14:38:11 #455 №780307 
14669410916210.png
>>780298
Я видимо что-то не то делаю.
Аноним 26/06/16 Вск 14:38:12 #456 №780308 
>>780300
Наследие Windows 3.1, когда не было тредов и была кооперативная многозадачность.
Аноним 26/06/16 Вск 14:40:26 #457 №780313 
>>780268
Ты ебанутый? У тебя солюшн пустой
Аноним 26/06/16 Вск 14:40:42 #458 №780315 
>>780307
1) int main()
2) return 0; добавь еще, после printf
Аноним 26/06/16 Вск 14:43:41 #459 №780324 
>>780313
>>780268
> проектов: 0
Хм, да. Что-то ты не то сделал. Закрой это нахуй и создай новый проект (Консольное приложение). В проекте добавь новый элемент, файл C++ и назови его main.c. Там уже набирай (или вставляй) код и компилируй.
Аноним 26/06/16 Вск 14:45:14 #460 №780330 
>>780300
Этот цикл нужен для ожидания\обработки действий пользователя. GetMessage - точка блокировки (без блокировки цикл сожрет все процессорное не выполняя полезной работы). Не ну ты конечно можешь их не обрабатывать (например так всякие консольные утилитки делают), но тогда и твой процесс завершиться очень быстро.
И это не только в винде, это во всех системах, где ожидают действий от юзера. Эксплорер виндовой это самое обычное приложение, а ты просто ленивая скотина.
Аноним 26/06/16 Вск 14:48:32 #461 №780338 
>>780330
Но можно было просто одной функцией Run(); сделать (вместо 3-х, GetMessage, TranslateMessage и DispatchMessage), а сообщения обрабатывать в отдельных потоках.
Аноним 26/06/16 Вск 14:52:11 #462 №780344 
>>780338
А основная нитка что тогда по твоему делать?
В Qt в общем то одним вызовом и запускается все это (а внутри уже и крутится цикл обработки эвентов)
Аноним 26/06/16 Вск 14:56:31 #463 №780354 
14669421914450.png
>>780324
Всем спасибо, сделал всё по-новой - заработало.
Аноним 26/06/16 Вск 14:58:00 #464 №780357 
>>780354
А, такой вопрос. Что-то посвежее КиР есть? Там не было ничего про return 0 и int перед main тоже не было
Аноним 26/06/16 Вск 14:59:32 #465 №780361 
>>780344
В Run просто вызывать Sleep(1), чтобы не было блокировки. И проверять, не было ли получено сообщение WM_QUIT.
Аноним 26/06/16 Вск 15:01:13 #466 №780364 
>>780357
Какое у тебя издание, не первое случайно?
Аноним 26/06/16 Вск 15:07:03 #467 №780371 
14669428239980.png
>>780364
Аноним 26/06/16 Вск 15:07:53 #468 №780372 
14669428741010.png
14669428741271.png
Откуда эти пикчи в книге Криса Касперски про шеллкоды? Он что, из этих?
Аноним 26/06/16 Вск 15:12:41 #469 №780379 
>>780372
Да, он из интернетов
Аноним 26/06/16 Вск 15:14:40 #470 №780381 
>>780338
> Но можно было просто одной функцией Run(); сделать
Нельзя. Из тройки GetMessage/TranslateMessage/DispatchMessage обязателен только GetMessage - дождаться уведомления о выключении компа, например. Остальные нужны не всегда. Еще в цикле обработки событий могут быть IsDialogMessage и TranslateAccelerator, они тоже не всегда нужны. А в играх делают цикл без блокировок, что-то типа if (PeekMessage()) { ...dispatch... } else { render(); }. Поэтому одного Run даже с кучей флагов нифига не достаточно, чтобы покрыть все случаи использования.

>>780357
Прата из шапки. На крайний случай Кочан. Но лучше сначала K&R дочитай.
Аноним 26/06/16 Вск 15:21:36 #471 №780387 
>>780381
А есть ли в этом смысл, если он такой старый?
Аноним 26/06/16 Вск 15:23:21 #472 №780388 
>>780361
Да ты просто гений программирования. Очень замечательный интерфейс получается. Ты правда думаешь, что если тебе не хочется делать цикл приема сообщений, то юзеры должны ждать секунду пока твой код сообразит обработать сообщения?
Аноним 26/06/16 Вск 15:29:41 #473 №780394 
>>780387
Это классика. К тому же, второе издание знает о C89 третьего издания вообще не существует - хуй знает, что за говно у тебя >>780371 тут, а множество консерваторов до сих пор пишет именно на C89.

>>780388
Ну вообще-то хотя бы один из тредов программы, слинкованной с /SUBSYSTEM:GUI, обязан обрабатывать сообщения, или винда сочтет, что программа зависла.
Аноним 26/06/16 Вск 15:31:40 #474 №780399 
>>780371
Странно, это уже после выхода стандарта. Везде советуют использовать именно int main и возвращать 0:
http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?id=1043284376&answer=1044841143
https://www.ty-penguin.org.uk/~auj/voidmain/
Либо там авторы просто не заморачивались возвращаемым значением.
В разных скриптах считается, что при успешном выполнении программа должна возвращать 0, иначе код ошибки.
Аноним 26/06/16 Вск 15:32:22 #475 №780402 
>>780307
>Я видимо что-то не то делаю.
Используешь продукты Microsoft.
CodeBlocks накати бля.
Аноним 26/06/16 Вск 15:35:23 #476 №780408 
>>780388
> секунду
Как же я проиграл.
Аноним 26/06/16 Вск 15:37:06 #477 №780411 
>>780402
Только консолька. Без консольки хороший сишник не получится.
Аноним 26/06/16 Вск 15:38:32 #478 №780414 
>>780307
> проектов: 0
Проект создай, епт.

>>780411
Нахуй иди. Ну напишет он cl /c main.c && link main.obj, и что, это такое адски необходимое на начальных этапах знание? Или про это так сложно прочитать, когда оно понадобится?
Аноним 26/06/16 Вск 15:59:10 #479 №780438 
Callback функции — это изобретение си или с++? Есть какой-нибудь авторитетный источник с описанием что это такое и как правильно реализовать?
Аноним 26/06/16 Вск 16:03:53 #480 №780442 
>>780438
Это паттерн существовавший ещё до си, просто широкую распространённость получил только после ноды с её асинхронностью на каждый пук.

Реализовывается везде одинаково – передаёшь указател на ф-цию как аргумент и вызываешь когда окончишь работу/по опр. событию и тд.
Аноним 26/06/16 Вск 16:03:58 #481 №780443 
>>780438
>Есть какой-нибудь авторитетный источник с описанием что это такое и как правильно реализовать?
Лямбда-исчисление.
Аноним 26/06/16 Вск 16:07:44 #482 №780445 
>>780438
Разберись лучше с корутинами, это более общая абстракция https://www.youtube.com/watch?v=_fu0gx-xseY
sageАноним 26/06/16 Вск 16:11:41 #483 №780447 
>>780445
> In C++17 this is how you would do...
Ты тредом ошибся.
Аноним 26/06/16 Вск 16:12:46 #484 №780450 
>>780414
> Нахуй иди.
Ты в скарказм уже не можешь?
Аноним 26/06/16 Вск 16:12:56 #485 №780451 
14669467768660.jpg
>>780394
> третьего издания вообще не существует - хуй знает, что за говно у тебя
И у меня
Аноним 26/06/16 Вск 16:17:03 #486 №780455 
>>780451
> Для настоящего третьего русского издания перевод заново сверен с оригиналом, в него внесены некоторые поправки, учитывающие устоявшиеся за прошедшие годы изменения в терминологии, а так же учтены замечания
В общем, они его придумали. По сути это второе издание перевода второго издания K&R.
Аноним 26/06/16 Вск 16:32:17 #487 №780467 
>>780442
>Это паттерн существовавший ещё до си, просто широкую распространённость получил только после ноды с её асинхронностью на каждый пук.
Проиграл с этого хипстера. Он был широко распространён ещё во времена Windows NT, где был коллбек на каждое событие в интерфейсе.
sageАноним 26/06/16 Вск 16:35:15 #488 №780470 
>>780467
Проиграл с этого проигравшего. Какое слово во фразе "еще до си" тебе непонятно?
Аноним 26/06/16 Вск 16:49:32 #489 №780485 
>>780467
Олдфажный хакер порвался)))
Аноним 26/06/16 Вск 17:04:36 #490 №780488 
>>780467
Пиздуй вирусы пиши и не выйобуцся
Аноним 26/06/16 Вск 17:05:35 #491 №780489 
Си старики потрясают клюками, кек
Аноним 26/06/16 Вск 17:13:15 #492 №780491 
>>780489
У пистушков и раби-даунов так печет, что они несут свой баттхерт в тред к старикам. Сделай плиз сайт вот такой как этот.
Аноним 26/06/16 Вск 17:14:44 #493 №780493 
>>780491
У меня вообще не печет, я пришел сюда чтобы стать си стариком, как и вы!
Аноним 26/06/16 Вск 17:26:28 #494 №780500 
>>780493
А я уже старик, а решил Си изучить. Доживу ли до конца изучения?
Аноним 26/06/16 Вск 17:27:18 #495 №780501 
>>780500
Чому нет, это же не плюсы.
Аноним 26/06/16 Вск 17:29:24 #496 №780502 
>>780501
8 лет хватит, чтоб в 50 накатить за знание С?
Аноним 26/06/16 Вск 17:32:27 #497 №780506 
>>780502
А я-то думал, я здесь самый старый. Хватит. Если не залезать в дебри, язык простой. Месяц на изучение синтаксиса, год на изучение либ и тонкостей типа неопределенного поведения. Умножь на два, если ты уже не тот, что прежде.
Аноним 26/06/16 Вск 17:35:07 #498 №780509 
>>780506
> не тот, что прежде
Давно уже не тот. В 93 хуярил на Ростовской областной олимпиаде по информатике. Места занимал. А сейчас туплю над структурой по пол дня.
Аноним 26/06/16 Вск 17:52:17 #499 №780515 
>>780509
Осиляторство языка - это еще не главное. Может оказаться, что тебе просто писать нечего, потому что все уже написано, а то, что не написано, неподъемно для одного человека. Тогда, наверно, только реверс и дрочение класических алгоритмов может сохранить интерес к кодингу.
Аноним 26/06/16 Вск 19:40:57 #500 №780594 
Где в линуксе определен addr_t?
Аноним 26/06/16 Вск 19:45:08 #501 №780596 
>>780445
как связаны сопрограммы и коллбек-функции
Аноним 26/06/16 Вск 19:48:56 #502 №780597 
>>780438
коллбек функции в си - это способ параметризировать поведение (а не данные)
в разных языках и разных либах по разному решается
это могут быть делегаты встроенные в язык в шарпике и явке, интерфейсы встроенные в язык, либо делегаты и интерфейсы реализованные на уровне либ, либо тупые коллбеки, либо тру лямбды (не синт сахар) и другая экзотерика в функциональщине
Аноним 26/06/16 Вск 19:53:15 #503 №780603 
>>780515
А что если только это и интересно, а вот писать самому-не очень?
Аноним 26/06/16 Вск 19:54:36 #504 №780604 
>>780597
ах, да, там если лезть в функциональщину, то еще и есть замыкания, функции высших порядков
альтернатива в опп - это полиморфизм
ПЕРЕКАТ Аноним OP 26/06/16 Вск 20:18:18 #505 №780631 
А у нас тем временем ПЕРЕКАТ. И снова со старой картинкой и старой шапкой.

>>780630 (OP)
>>780630 (OP)
>>780630 (OP)
>>780630 (OP)
>>780630 (OP)
comments powered by Disqus

Отзывы и предложения