[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!



Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 500 | 60 | 163
Назад Вниз Каталог Обновить

C Programming Language #19 Аноним # OP  05/03/17 Вск 06:33:08  946603  
C Programming L[...].png (78Кб, 792x1023)
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/ или http://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит [​i​] или зведочки.

Что читать:

- Классика от Отцов: http://www.cypress.com/file/56651/download
- Годное пособие для гуманитариев: 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: оче годно, батя рекомендует.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 2017 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)

Paul Deitel, Harvey Deitel "C for Programmers with an Introduction to C11" (2013)

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/
- https://arhivach.org/thread/182958/
- https://arhivach.org/thread/188294/
- https://arhivach.org/thread/193780/
- https://arhivach.org/thread/198868/
- https://arhivach.org/thread/206632/
- https://arhivach.org/thread/211714/
- https://arhivach.org/thread/217128/
- https://arhivach.org/thread/223224/
- https://arhivach.org/thread/235327/
- https://arhivach.org/thread/237852/
- https://arhivach.org/thread/243867/

Шапка: http://piratepad.net/bJ1SdmkZyu
Аноним 05/03/17 Вск 06:50:09  946609
>>946603 (OP)
Почему нейроночки пишут на всяком говне а не на C?
Аноним 05/03/17 Вск 08:21:16  946623
>>946609
Потому что заебешься.
Аноним 05/03/17 Вск 09:01:29  946629
Скиньте че интересного почитать из русскоязычной литературы
Аноним 05/03/17 Вск 09:02:15  946630
>>946629
Лукьяненко
Аноним 05/03/17 Вск 09:07:49  946632
>>946609
Потому что C не работает на GPU, а работает "всякое говно" вроде CUDA и OpenCL
Аноним 05/03/17 Вск 09:08:50  946633
>>946632
Дак CUDA это C/Fortran
Аноним 05/03/17 Вск 09:09:35  946634
>>946633
Дак OpenCL тоже much C-like
Значит пишут на C
Аноним 05/03/17 Вск 09:25:37  946638
>>946634
Кстати, где можно новичку найти учебники по OpenCL на русском? А то по CUDA, вон, академики из МГУ пишут книги, а по OpenCL нет такого вот всего...
Аноним 05/03/17 Вск 09:42:19  946644
Какую библиотеку использовать чтобы в маздае создавать окно и пересылать на него отдельные пиксели и png-картинки?
Аноним 05/03/17 Вск 10:41:28  946661
Image 001.png (0Кб, 305x26)
Хелп, всё описание проблемы тут:
http://pastebin.com/Cfgis7Ds
Пикрил вот:
Аноним 05/03/17 Вск 10:45:12  946663
>>946661
> Ну и заполняем m[0]...m[count] элементами am[].
Я имел в виду до m[count-1]
Аноним 05/03/17 Вск 10:45:49  946665
>>946644
WinAPI
Аноним 05/03/17 Вск 10:54:52  946668
>>946638
>на русском
Не нужно.
Аноним 05/03/17 Вск 10:55:54  946670
>>946668
Кек, да на аглицком-то толковых нет, просто разбросанная по интернету документация, которая целостна в голове у 1.5 пердоликов
Аноним 05/03/17 Вск 10:56:15  946671
>>946670
Хотя не, я обосрался
Аноним 05/03/17 Вск 11:20:38  946673
Дайте, пожалуйста, учебник или руководство по WinApi. А то я из всей информации смог нарыть лишь то что devcpp предлагает. Пример окна. А в гугле эти пислоглоты предлагают мне использовать c++. ЧТО ЗА ИДИТО ПРИДУМАЛ ТАК НАЗВАТЬ ЯЗЫК?!?!
Аноним 05/03/17 Вск 11:22:04  946674
>>946661
Отбой, функция отрабатывает нормально. Дело где-то в другом месте...
Аноним 05/03/17 Вск 11:33:37  946681
>>946630
Зачем вы тгавите?
Аноним 05/03/17 Вск 11:34:24  946682
>>946661
Короче, трабла в том, что я в функцию передаю массив int m[], затем m меняю, а в main изменения не передаются.
Как передать?
Аноним 05/03/17 Вск 11:41:04  946685
>>946682
По ссылке, дебил.
Аноним 05/03/17 Вск 11:41:49  946686
>>946685
http//::::::::::?
Аноним 05/03/17 Вск 11:45:01  946689
14824327435170.jpg (27Кб, 493x387)
>>946686
Аноним 05/03/17 Вск 14:40:39  946850
>>946685
>>946682

Оба ебанутые.
Во-первых не по ссылке, а по указателю.

Во-вторых:
Параметр m - должен быть указателем на ДИНАМИЧЕСКУЮ память. Т.е. ты не можешь написать
>int m[]={43 25 45 13 27 41};
Сперва ты должен сделать что-то вроде:
int m = malloc( sizeof(int) 6)
Потом проинициализировать значениями.
Да и вообщше привиди полный код с main(). У тебя там труха полная, даже лень разбирать.

Читани сначала оп-пик.
Аноним 05/03/17 Вск 15:04:42  946888
>>946850
> int m[]={43 25 45 13 27 41};
Таковым и является. В main создан динамический массив, а вот эту вот строку я написал сам, чтобы показать, какой, например, массив поступает.
Аноним 05/03/17 Вск 15:08:54  946896
>>946888
Короче, проблема решена.
А в догонку вопрос.
Если я передаю массив в функцию, я по сути передаю указатель на первый элемент массива.
И менять я сам указатель не могу же в функции, верно?
Аноним 05/03/17 Вск 15:21:22  946911
>>946896
Можешь делать с указателем что хочешь.
конечно если это не *const

Ты можешь присвоить этому указателю новое значение. Однако это значение не вернётся обраттно в вызывающую ф-цию.
Чтобы вернуть значение новго указателя из ф-ции ты должен передать указатель на указатель.
В твоём случае realloc - вероятнее всего вернёт новый указатель и ты долже вернуть его обратно.
Следовательно ты должен предевать не m[] а указатель на m[].
Аноним 05/03/17 Вск 15:23:34  946914
>>946911
Спасибо. Всё мне разъяснил
Аноним 05/03/17 Вск 16:30:18  946962
Petzold1001.jpg (21Кб, 595x842)
Petzold1026.jpg (85Кб, 595x842)
>>946673
Пикрил, не смотри что 95, дает базу и многое до сих пор актуально на NT-системах, просто параллельно сверяйся с msdn.
Аноним 05/03/17 Вск 16:30:36  946964
>>946665
А можно что-то попроще? Чтобы я мог создать окно выбранного размера и рисовать там пиксели, линии, прямоугольники, дуги, многоугольники, эллипсы. Или хотя бы отдельные пиксели.
Аноним 05/03/17 Вск 16:42:10  946968
>>946962
Спасибо, аноний. То что пытался найти на всяких сайтах 2 часа и не нашёл нашёл в этой книге за первые 10 минут.
Аноним 05/03/17 Вск 18:27:07  947025
>>946964

Выбирай любую C-либу для гуя: gtkmm, sdl и прочие.
Аноним 05/03/17 Вск 18:56:46  947039
wtf.png (28Кб, 400x400)
>>946962
>Windows 95
>актуально на NT-системах
Аноним 05/03/17 Вск 19:29:08  947060
Ребят, выручайте, как работать с графикой, имею следующее:
> C (чистый, pure, бедняжка:'c)
> x64-разрядную шинду

Алсо, пытался в OpenGL и Direct3D, но ниасилил
Алсо2, работать надо с 2D, нужна будет просто статичная картинка (от расчетов)
Аноним 05/03/17 Вск 20:00:54  947084
>>946850
>по указателю.
Нет такого. Есть по значению и по ссылке (в C++)
Аноним 05/03/17 Вск 20:09:28  947093
>>947039

С каких двух букв начинается название файловой системы винды?
Аноним 05/03/17 Вск 20:09:46  947094
>>947060
Вверху информация. Можешь WinApi использовать. В книге, которая выше сразу пример рисования текста. А тут http://www.codenet.ru/progr/delphi/WinAPI/ есть справочник функций.
Или sdl попробуй.
Аноним 05/03/17 Вск 20:10:12  947095
>>947093
ЖИ
Аноним 05/03/17 Вск 20:29:46  947116
>>946603 (OP)
Только что узнал что в си есть goto. В курсах такого не говорили. Просто подумал, а вдруг в си тоже есть goto? И оказалось да. Оказывается си не такой уж и плохой, по сравнению с ассемблером. Это многое упростит.
Аноним 05/03/17 Вск 20:33:43  947119
>>947116
У gcc еще и jump tables есть:
https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html
Аноним 05/03/17 Вск 20:57:34  947129
Хотелось бы увидеть примеры реальных программ. Пока смог найти только исходники старых игр (DOOM, квэйк и т.п.). Но есть ли что поновее (не игры)? Хотя бы список программ, где часть написана на чистом си не подкинете?
Аноним 05/03/17 Вск 20:59:39  947134
>>947129
>Хотя бы список программ, где часть написана на чистом си не подкинете?
Репу GNOME на github смотри
Аноним 05/03/17 Вск 21:06:54  947139
>>946681
Тогда Пелевина.
Аноним 05/03/17 Вск 22:00:02  947191
Написал свою первую программу на Си. http://ideone.com/FwiY3m Крутота.

>>946629
Я изучаю по "C для программистов с введением в C11".
Аноним 05/03/17 Вск 22:04:34  947195
>>946962
10 прошло с моей сознательности, а это говно всю советуют. хорошо что я решил, что лучше линупс, чем отсосать фуллбловн у винап.
Аноним 05/03/17 Вск 22:07:02  947196
>>947060
glut
Аноним 05/03/17 Вск 22:11:48  947199
>>947084
> C++
Аташол
зануда-кун 05/03/17 Вск 23:02:00  947233
сап, анон, есть два сту... кхех... настольная приложуха. Динамический лексический словарь, который пополняется юзверем. Работать приложуха должна фоном. Иногда на некоторые слова приложуха тригерится и выкидывает юзверю куски си-кода. И всё это говно должно неприрывно работать и перекомпилироваться во время выполнения. Так, как во время фонового выполнения уже кодер вносит патчи и всякие фичи. Внимание, знатоки, вопрос. Сколько хуё... кхм... Как GCC заставить этот код постоянно компилироваться "на лету"? Видел, в одной статье как с помощью malloc() код сконверченный в поток байтов, запиханных в массив знаков, запускали в JIT. Или же проще искать сторонние интерпритаторы для си, которые помогут в этом случае. Короче, дайте линк на годное чтиво, особенно по компиляторам. Или лучше искать документацию GCC? И куда тогда смотреть, чтобы достичь моего эффекта?
Аноним 05/03/17 Вск 23:42:54  947264
>>946673
Фень Юань (GUI) и Рихтер (не GUI) все еще актуальны. Но если ты тот, кто выше про окно и png спрашивал, бери SDL2 и не выделывайся.
Аноним 05/03/17 Вск 23:45:05  947268
>>947233
Для Си есть libtcc, но лучше прикрути нормальный скриптовый язык. Какой-нибудь lua, например.
зануда-кун 06/03/17 Пнд 03:16:07  947369
>>947268
чаю
Аноним 06/03/17 Пнд 11:26:58  947505
>>947196
OpenGL ~ glut
halp mи понять это
зануда-кун 06/03/17 Пнд 16:24:18  947699
сап, анон. Я искренне не понимаю, почему у людей горит с сишных указателей. По-моему это чуть ли не гениальнейшая вещь, которой Си может похвастаться. Это ведь круто, когда ты должен сам контролить активные области, а не полагаться на транслятор, в надежде, что он выполнит так как надо. Хотя я сам и не до конца понимаю и не разбираюсь в указателях, но это однозначно куртая фича по моему скромному мнению. Это ведь круто, что одна переменная может иметь кучу различных имён, указывающих на неё. Если память кодера коротенькая и он просто не помнит название переменной, то просто можно вызывать её по синонимам-указателям. Хотя, это не уникальная вещь, это лишь одно из практических применений указателей. В общем, я каждый раз недоумеваю, когда кто-то бугуртит на указатели.
Аноним 06/03/17 Пнд 16:28:59  947706
>>947060
>работать надо с 2D, нужна будет просто статичная картинка (от расчетов)
Используй SDL, вот тебе туториал: http://lazyfoo.net/tutorials/SDL/
Аноним 06/03/17 Пнд 17:53:29  947775
>>947699

В Си нет других удобных указателей, кроме обычных указателей (адрес места хранения вот сейчас). В крестах можно придать указателю нужные свойства через операторы и конструкторы/деструкторы, в Сях - только через громоздкие вызовы процедур.

Представь себе, что ты передаёшь указатель на большой массив в процедуру, и эта процедура созраняет его в статичной переменной для вычислений в будущем (для сглаживания, например). Потом ты как-то меняешь свою программу (и она состоит из 10000 строк, например), и где-то между вызовами этой функции ты трёшь этот массив, указатель на который где-то сохранён. Потом ты вызываешь эту процедуру и получаешь Undefined Behaviour, потому что данных в этом месте хранения уже нет. Или ты делаешь realloc, и данные могут быть в другом месте.

Указатели - это гениальнейшая вещь, только в других языках они лучше и выразительнее, чем "адрес места хранения вот сейчас".
Аноним 06/03/17 Пнд 18:00:57  947778
>>947775
> Или ты делаешь realloc, и данные могут быть в другом месте.

И тоже получаешь UB, разумеется.
Аноним 06/03/17 Пнд 18:07:09  947781
>>947268
а можно из кода делать системные вызовы для компиляции? Я так один раз сделал, у меня комп повис. Или можно оформить отдельный код, который компилирует мой изначальный код. Хотя по сути это и будет обычный скрипт.
Аноним 06/03/17 Пнд 18:10:23  947782
>>947781
луа для того и нужен, чтобы ничего не компилировать динамически. везде где статика там си, если есть динамические сценарии, то можно юзать луа, которые интерпретируемый.
Аноним 06/03/17 Пнд 18:21:38  947787
>>947781
если изменять код на лету, это типичный морф как в вирусах, если компилить либу и подключать на лету, то придется приложение перезапускать, чтобы все в памяти отобразилось, либо лепить велосипед которые на лету будет секцию линка в памяти править на лету. Лучше интерпретатор пускать, это выбор всего геймдева даже.
Аноним 06/03/17 Пнд 18:24:30  947792
>>947787
>Лучше интерпретатор пускать
время написать свой lisp
Аноним 06/03/17 Пнд 19:26:36  947817
a.JPG (100Кб, 975x913)
>>947706
Непонимаю. Сделал как в туториале, но какая то ошибка, которую я непонимаю.
Аноним 06/03/17 Пнд 20:42:02  947876
>>947706
Чувак, мне нужен C, а не C++
Аноним 06/03/17 Пнд 20:44:44  947880
>>947817
Ты либы не слинковал, с виду. На ворнинги похуй.
Аноним 06/03/17 Пнд 20:45:52  947883
>>947876
Ты ебанутый?
Аноним 06/03/17 Пнд 21:03:45  947903
>>947883
Алеша, ты не в курсе, что крестовый рантайм спокойно влезает только в разработанное очко твоей мамаши, а всякий embed посыпется нахуй от таких раскладов?
Аноним 06/03/17 Пнд 21:23:57  947934
>>947903
>sdl
>крестовый рантайм
Скажи мне, ты ебанутый?
Аноним 06/03/17 Пнд 22:10:40  947988
>>946603 (OP)
Мне кажется или легче на ассемблере написать операционную систему и там уже программировать на си, чем на WinAPI, SDL, OpenGL и тд?
Аноним 06/03/17 Пнд 22:12:24  947992
>>947988
Покажется же такое. И что ты вложил в "ОС"?
Аноним 06/03/17 Пнд 22:12:38  947993
>>947988
Тебе кажется. Если ты не осилил простые API, то ОС ты тем более не осилишь.
Аноним 06/03/17 Пнд 22:26:06  948014
>>947992
Загрузчик ОС, который переводит её в защищённый режим. А дальше уже идёт небольшая графическая состовляющая, позволяющая запустить одну программу, которая может повлиять на весь компьютер даже стерть загрузчик с жёсткого диска и просматривать файлы через программы и просто просматриватель файлов.
Аноним 06/03/17 Пнд 22:27:24  948016
Наверное всё же легче научиться проектировать и создавать процессоры, которые будут использоваться под одну задачу.
Аноним 06/03/17 Пнд 22:27:34  948017
>>948014
Наркоман
Аноним 06/03/17 Пнд 22:27:55  948018
>>948016
Дак и сейчас не все же процессоры общего назначения
Аноним 06/03/17 Пнд 22:40:46  948023
>>948017
Я почти перешёл в защищённый режим но не получилось. И не понятно почему. x86-64 для пидоров.
Буду переходить на ARM.
>>946603 (OP)
Я похоже придумал как реализовать свою программу. Файл .msfso превращу в .bmp и выведу через функцию WinAPI. И никаких SDL не надо.
Только вот потом мне надо будет организовать вставку видео и аудио. Можно ли в WinAPI сделать так? Чтобы по нажатию в некоторой области окна воспроизвелось видео или аудиофайл.
Аноним 06/03/17 Пнд 23:35:10  948056
>>947775
Ебать ты долбоеб.
Кто ж сука так делает это был риторический вопрос, ответ см выше?
Аноним 06/03/17 Пнд 23:38:44  948062
>>948023
Лучше сразу прикрути к своему окну WebKit браузер.
Аноним 07/03/17 Втр 01:18:46  948126
>>948023
>на ARM
нахуй ты здесь нужен
Аноним 07/03/17 Втр 04:07:13  948210
>>948016
Или сделать универсальный процессор, конечно всегда лучше специфическое устройство, но есть устройства с широким спектром задачь, ПК например.
Вот для таких устройств ARM IBM AMD Qualcom решили разработать гибридную архитектуру, каждая архитектура для чего-то хороша, вот и решили повыкидывать мусор из amd64 POWER9 arm64 так чтобы остались только сильные стороны и объединить это в одной системе.
Аноним 07/03/17 Втр 07:57:30  948245
>>947039
Думаешь, там за 20 лет апи менялось? Да нихуя.
Аноним 07/03/17 Втр 08:34:50  948260
>>948210
И как сие чудо назвается?
Аноним 07/03/17 Втр 09:30:40  948279
>>948245
Менялось. Появлялись новые API-функции, и в серьезных проектах ими пользуются. А вот хелловорлды можно спокойно по .hlp-файлам от Windows 95 писать, все будет работать, это вам не линукс.
Аноним 07/03/17 Втр 10:42:26  948318
>>947129
https://github.com/torvalds/linux
Не благодари
Аноним 07/03/17 Втр 12:30:00  948354
>>946603 (OP)
uint8_t num = 0xfe; //254
uint32_t ip_v4 = 0xc0a8d301; //192.168.211.1
((uint8_t *)&ip_v4)[1] = num;
Ананасы, что скажете о таком коде? Опасно делать такое приведение или нет? знаю, что можно всё сделать с помощью битовых масок, но такой код больше нравится
Аноним 07/03/17 Втр 13:50:39  948409
>>948354
Про union не слышал? Как только сокеты сделали уже стали юнионом куски ip устанавливать вместо твоей нечитаемой каши.
Аноним 07/03/17 Втр 13:57:55  948413
>>948354
>>948409
Только с endianness будет проблема, но в твоем примере тоже самое (читай, используй библиотечную функцию).
https://ideone.com/GnlMuk
Аноним 07/03/17 Втр 14:09:13  948418
>>948245
Алё, болезный, 95-ый шиндовс не на NT-ядре. И Win32 API (который кстати появился раньше Win95) там кастрированый.
Аноним 07/03/17 Втр 14:56:39  948440
>>948409
Да мне-то всего лишь один октет сменить надо, поэтому объявление юниона выглядело бы излишним (насколько я понял, что юнионы, что приведения в моем коде имеют абсолютно тот же смысл для компилятора).

Аноним 07/03/17 Втр 19:01:09  948622
Актуально ли учить C в 2017? Какие перспективы трудоустройства?
Аноним 07/03/17 Втр 19:14:23  948640
>>948622
ну если у тебя есть вышка по специальности, плюс несколько лет опыта работы по профилю то сможешь устроится на более-менее норм работу
но получать все равно будешь примерно на 30% явашника или вебмакаки на аналогичной позиции
вкатывальщикам же абсолютно нечего здесь делать
Аноним 07/03/17 Втр 19:15:28  948641
>>948622
Какие задачи тебе интересны? Микроконтроллеры и ембеддед? Машинное обучение, анализ данных? Энтерпрайз? Геймдев? Веб-приложения? Ещё дохуя всего не перечислил.
Отсюда и надо смотреть.
Если хочешь именно денег, то тут нехуй делать, имхо.
Аноним 07/03/17 Втр 19:50:41  948676
>>948622
Си знать обязан каждый. Поэтому учи.

Изучи только Си - ты никому не нужен.
Чтобы устроиться ты должен освоить охеренный стек соопуствующих технологий. А какие именно технологии - зависит то задач и к чему у тебя лежит душа.

Аноним 07/03/17 Втр 20:17:52  948710
>>948622
Да.
Аноним 08/03/17 Срд 00:15:43  948835
uint.png (6Кб, 195x153)
uint2.png (0Кб, 95x12)
А можно как-то добиться нуля в таком выражении? У меня всё пидорасит из-за этого. Сигфолты доебали.
Аноним 08/03/17 Срд 01:12:52  948866
>>948640
>вкатывальщикам
А вот щас обидно было. Где же скилзы прокачать, как не выслушивая говно от анонов с двача?
Аноним 08/03/17 Срд 01:24:31  948876
>>948835
Ты в начальной школе учился? Откуда в твоем выражении может взяться ноль? Если хочешь сделать saturated subtraction - сделай явным образом, через if. Какого хуя ты unsigned для отрицательных чисел используешь?
Аноним 08/03/17 Срд 02:32:08  948905
>>948056

Нет, ты.
Аноним 08/03/17 Срд 02:37:01  948908
>>948835

Какого ляда ты используешь разные флаги для одной и той же переменной? Более тоо, %u - это для unsigned int, а не для uint32_t, ты обосрался два раза.
Аноним 08/03/17 Срд 05:52:33  948947
>>948835
Неудачный выбор языка. Попробуй JavaScript, он тебе в самый раз подойдет.
Аноним 08/03/17 Срд 06:09:12  948948
542268216.png (30Кб, 591x895)
>>947060
Лучше SDL ничего не придумано. Бери 2 версию, она и через OpenGL, и через Direct3D может 2D графику рисовать. Первая только программно.

>>947876
Кресты там абсолютно не нужны.
См. примеры: http://www.willusher.io/pages/sdl2/
Пикрелейтед выводит пустое черное окно.
Аноним 08/03/17 Срд 09:21:22  948976
>>948948
Придумано- sfml
Аноним 08/03/17 Срд 09:52:31  948984
>>948835
через if
Аноним 08/03/17 Срд 09:54:26  948985
a.JPG (29Кб, 335x320)
a1.JPG (21Кб, 762x363)
b.JPG (30Кб, 314x339)
b1.JPG (18Кб, 716x348)
Какого фига в первом случае (первые 2 пика) участок кода работает некорректно, а во втором случае (последние 2 пика) корректно? Это баг компилятора или я чего то не понимаю?
Компилятор TDM-GCC 4.9.2 64-bit Release
Аноним 08/03/17 Срд 10:41:43  949000
Долбёбина, выучи приоритеты.

(sch & sch1) == 0

И вообще так пишут только школьники

!(sch & sch1)

sch1 = sch1/2

sch1 >>= 1

Аноним 08/03/17 Срд 11:02:09  949013
>>948876
> Какого хуя ты unsigned для отрицательных чисел используешь?
На то там и unsigned, чтобы отрицательных чисел не было блджад.

>>948908
Да иди ты нахуй, %u в данном случае справляется нормально, это тестовый пример. В реальной жизни я выведу stdint'овыми писечками.

>>948984
Короче ясно.
Аноним 08/03/17 Срд 11:04:10  949016
>>948876
И ещё:
> Откуда в твоем выражении может взяться ноль?
Попробуй поприсваивать разные значения переменной с типом _Bool.
Аноним 08/03/17 Срд 11:16:06  949020
>>948835
>А можно как-то добиться нуля в таком выражении?
что это значит?
Аноним 08/03/17 Срд 11:21:15  949026
>>949020
5 - 4 = 1
5 - 5 = 0
5 - 6 = -1 0
Все отрицательные к нулю сгонять, unsigned же.
Аноним 08/03/17 Срд 11:23:37  949028
>>949026
ну и трахайся тогда со старшим битом. можно ебучую макаронину заделать, или перевести старший бит в младший и обратится к массиву
uint32 a[2] = { -1, 0 } ; b &= a[ну ты понял] ;
Аноним 08/03/17 Срд 11:28:18  949030
>>949028
Блядь, да мне простой способ нужен а не этот пиздец, это базовые вещи, хочу логики.
Аноним 08/03/17 Срд 11:29:53  949031
>>949030
какие, нахуй, базовые вещи, где это видано чтобы отрицательные числа в ноль ухуячивались?
Аноним 08/03/17 Срд 11:32:02  949032
>>949031
А где это видано, чтобы unsigned содержал в себе отрицательные числа? И, опять же, посмотри на _Bool.
Аноним 08/03/17 Срд 11:45:52  949039
>>948984
А как конкретно должен выглядить if?

Так: if(var < 0) или так: if(var <= -1) не работает.
Аноним 08/03/17 Срд 11:56:23  949048
>>949026
>Все отрицательные к нулю сгонять

Ебать ты колхозник по образу мысли.
Лучше на выпасе, после обеда читни что-нибудь про кампуктеры.
Аноним 08/03/17 Срд 11:57:41  949049
>>949039
АХАХАХАХ
Съеби нахуй с борды!
Ахахах АХАХАХА
Аноним 08/03/17 Срд 12:24:14  949069
>>948985

С моей башни очень похоже на ундефайнд бехавиоур где-то в коде до этого.

можешь надеть ещё одну шапочку из фольги - добавь прямо в условие ифа принтф через запятую, типа

if (printf("%i",sch&sch1, sch&sch1==0), sch&sch1==0)
Аноним 08/03/17 Срд 12:27:05  949070
>>949032
>А где это видано, чтобы unsigned содержал в себе отрицательные числа?

1) undefined behaviour
2) ты выводишь беззнаковое через знаковый флаг
Аноним 08/03/17 Срд 12:27:47  949072
>>949069

А, уже ответили. >>949000
Аноним 08/03/17 Срд 12:39:47  949082
>>949048
>>949049
Хватит меня травить.

>>949070
> ты выводишь беззнаковое через знаковый флаг
Я и через %u выводил, там мусор. Вероятно и в сравнении в if'е тоже сравнивается мусор. Нет чтобы так сразу и написать, но хуй, обязательно надо "ГАГАГА НУ ТЫ ДАУН".
Аноним 08/03/17 Срд 12:40:45  949085
>>949070
>undefined behaviour
нет.
Аноним 08/03/17 Срд 12:53:52  949094
>>949082

Иди читай про способы представления чисел в кампуктере.

Школьник-вкатыватель?
Аноним 08/03/17 Срд 12:57:22  949095
>>949085

А что? implementation-defined?

>>949082
>Вероятно и в сравнении в if'е тоже сравнивается мусор.

Слабо положить разность в больший знаковый тип?
Аноним 08/03/17 Срд 13:12:51  949103
>>949095
>А что? implementation-defined?
и знаковый и не знаковый полностью идентичны.
Аноним 08/03/17 Срд 13:14:35  949105
>>949082
> там мусор
Ааа! Оно же просто по кругу, с конца идёт. Минуса-то нет. Теперь понятно.
Аноним 08/03/17 Срд 13:16:53  949109
>>949103

Покажи мне место в стандарте C, в котором это написано.
Аноним 08/03/17 Срд 13:18:50  949112
>>949109
ну, бинарно. значение может быть разное, в результате обеззначивания - 3 варианта, описаны в с99.
Аноним 08/03/17 Срд 13:25:48  949115
>>949105
Ебать, да ты траллишь!

Съеби нахуй, школьник
Аноним 08/03/17 Срд 14:09:23  949152
>>949115
Третий раз за день меня называют школьником и просят съебать. Грустно всё это, я ведь просто немного туплю. Все тупят. Каждый может что-то забыть, не додуматься сразу. Сонливость, плохой день, просто не пошло, всякое бывает. Всеж мы люди, в конце-то концов, а вы так набрасываетесь на бедного ньюфага.Надеюсь это твои Семёны.
Аноним 08/03/17 Срд 14:27:27  949173
>>949152
Я сегодня из-за невнимательности где-то час не мог понять в чём проблема. Я делаю свой формат картинок чтобы не пользоваться чужим и непонятным png, но и чтобы не пользоваться громоздским bmp. И я забыл что вчера после сигнатуры начал добавлять 4 байта с комментарием, обозначающем версию. Но теперь понял и уже почти всё нормально.
Аноним 08/03/17 Срд 20:22:42  949428
>>949173
12 битные цвета?
Аноним 08/03/17 Срд 20:23:11  949431
Кто придумал pass argument by value?
Какого хуя? Зачем оверхед этот нужен?
Надо на поинтерах все писать.
Аноним 08/03/17 Срд 20:25:33  949433
>>949431
> оверхед
Поинтер - это 2-3 инструкции, аргумент из стека - одна.
Аноним 08/03/17 Срд 22:43:04  949562
>>949431

Аргумент из стека можно использовать (менять), а указатель надо
1) разыменовать
2) выделить место под переменную, на которую он указывает, если хочется менять её.
Аноним 08/03/17 Срд 22:43:51  949563
>>949431
3) если программа многопоточная, скопировать с тек всё равно придётся, так как может ёбнуть
Аноним 08/03/17 Срд 22:55:00  949579
>>949433
Асемблер не знаю, погуглю об этом.
>>949562
Обычно ведь не приходится менять, а если надо то есть пасс бай value.
>>949563
Ну да, надо учитывать все.
Аноним 08/03/17 Срд 23:02:28  949587
>>949431

Дебил? Если мне не надо менять значение? Про сайд-эффекты слышал?
>Асемблер не знаю

Впрочем, все понятно.
Аноним 08/03/17 Срд 23:05:11  949590
>>949587
Если значение менять не надо то не меняй блядь, это же С.
А о лишних инструкциях хотел бы подробнее узнать, не гуглится, ну а структуры само собой лучше указателем передавать.
Аноним 08/03/17 Срд 23:20:08  949606
>>949590
> А о лишних инструкциях хотел бы подробнее узнать, не гуглится
gcc -S file.c или https://godbolt.org/
Аноним 08/03/17 Срд 23:52:59  949635
>>949590

>Если значение менять не надо то не меняй блядь, это же С.

Ты реально собрался делать каждый раз локальную копию int/float/double-переменных, переданных в функцию?
Аноним 09/03/17 Чтв 00:47:03  949673
>>949635
Нет конечно, можно и по значению передать.
Аноним 09/03/17 Чтв 01:07:13  949684
14774037992690.gif (2663Кб, 264x240)
>>946603 (OP)
Пишу игровой движок с минимумом зависимостей (только OpenGL + WinAPI/Cococa/X-Window, только хардкор), базовый функционал уже готов, собираюсь переезжать на ГитХаб. Есть вопросы по стилю:
1) Зашкварно ли использование строк вместо enum-ов в качестве аргументов функций? Делаю API одновременно и для C, и для Lua, хотелось бы гомогенности в интерфейсах.
2) Зашкварно ли использование макросов-оберток над функциями?
Спасибо.
Аноним 09/03/17 Чтв 01:25:34  949693
>>949684
> использование строк вместо enum-ов
Сложный вопрос. Аргументы против: с enum нет нормального контроля типов, но есть защита хотя бы от опечаток, со строками нет. Плюс тормоза при сравнении строк.

> Зашкварно ли использование макросов-оберток над функциями?
Нет, если макрос простой, ты можешь обосновать его существование, и можешь обосновать, почему это не static inline функция.
Аноним 09/03/17 Чтв 02:03:47  949709
На сколько я понял, в си нет типов данных занимающих меньше 8 бит т.е. 1 байта. Почему? В чём проблема запилить такой тип данных? Возможно ли это?
Аноним 09/03/17 Чтв 03:03:43  949736
>>949709
A L I G N M E N T
L
I
G
N
M
E
N
T
Аноним 09/03/17 Чтв 03:41:27  949743
>>949709
Есть битовые поля.
Аноним 09/03/17 Чтв 08:31:20  949778
>>949684
>OpenGL
>X
Так говно ж мамонта, ему уже сколько, 25 лет, пиши на Vulkan + Wayland diplay server protocol.
Аноним 09/03/17 Чтв 08:49:21  949781
>>949709
Минимально адресуемая единица - 1 байт. Хочешь ворочать отдельными битами - используй бытовые операции. Тчк.
Аноним 09/03/17 Чтв 10:35:53  949814
>В чём проблема запилить такой тип данных? Возможно ли это?

В архитектуре компьютера. Память адресуется побайтово.
Аноним 09/03/17 Чтв 10:38:29  949817
>>949709
>В чём проблема запилить такой тип данных?

Нельзя будет адресовать его машинным адресом. Для адресации такого объекта придётся перепиливать указатели и каждый раз их менять перед обращением к ЦП - и они будут занимать больше места (3 бита на адресацию битов и ещё сколько-то байт на выравнивание, если ты не совсем поехал и не будешь паковать вообще все объекты с дробным размером).
Аноним 09/03/17 Чтв 10:46:46  949824
>>949814
Можно хоть триты запилить (в другом языке), но Сишечка создана так, чтобы быть максимально ближе к железу (при условии сохранения портабельности).
Аноним 09/03/17 Чтв 11:00:37  949830
>>949824
Я бы посмотрел на Си в мире троичных ЭВМ.
Аноним 09/03/17 Чтв 11:09:44  949833
>>949709
С текушими процессорами невозможно. Нет у каждого бита своего адреса, и не нужно это. Есть битовые поля.
>>949830
Троичных пока не изобрели.
Аноним 09/03/17 Чтв 11:53:22  949861
>>949833
> Троичных пока не изобрели.
Ньюфаг штоле?
Аноним 09/03/17 Чтв 11:59:15  949862
>>949861
хуефаг, если бы они были то их бы и использовали. Можно наколхозить с потерями производительности из обычных транзисторов, но смысла в этом нет. И сама информация может только в бинарном виде хранится, еще далеко до всего этого.
Аноним 09/03/17 Чтв 12:30:56  949878
>>949862
> сама информация может только в бинарном виде хранится
Я же говорю, ньюфаг. Не позорься. Погугли про MLC флеш память чтоли, например.
Аноним 09/03/17 Чтв 13:30:33  949897
>>949878

Либо ты можешь объяснить, где именно в MLC троичность, либо пиздобол.

Все существующие алгоритмы сделаны для двоичной логики. Их можно напрямую перенести на троичную без использования третьего состояния битов, но нахрен это?
Аноним 09/03/17 Чтв 13:54:35  949904
>>949833
Сетунь жи есть, совок использовал. Но там троичность за счет специфичности элементной базы. Правда, она была дешевле и производительнее.
Аноним 09/03/17 Чтв 14:29:58  949925
>>949904
Пидорахены не могут в продакшн, поэтому даже если идеи годные есть все по пизде идет. Давно пора сдать СНГ в рабство США.
Аноним 09/03/17 Чтв 14:42:26  949931
>>949904
>т.е. один трит записывался в два двоичных разряда, четвёртое состояние двух двоичных разрядов не использовалось.
Больше на обосрамс похоже.
Аноним 09/03/17 Чтв 14:54:32  949934
>>949931
Работало же. Но долбоебы загубили дешевую массовую ЭВМ для предприятий.
Аноним 09/03/17 Чтв 15:06:22  949939
>>949934
Почитал статью о троичных ЭОМ, годнота оказывается. В 2007 последнюю сделали. Проблема то в том что эти элементы не сожмешь до 10нм, думаю начнут считать на молекулах и атомах тогда дойдет дело и до 10тичной системы счисления, если до 36ричной то идеально вообще.
Квантовые компьютеры уже пытаются делай айбиэм и дивейв, но кьюбиты это немного не то что нужно в повседневних задачах.
Аноним 09/03/17 Чтв 18:22:15  950014
>>949934
>Работало же.

Даже если работало, получение троичной логики путём отрезания четвёртого состояния никаких преимуществ по сравнению с четверичной машиной не даёт.
Аноним 09/03/17 Чтв 19:03:11  950033
blob.png (24Кб, 1424x418)
>>946603 (OP)
Сап, /пр, думаю тут есть те кто и на плюсах пишет, с другом один вариант, поделился кодом, только пишет он на плюсах, я же на простом си, проблема только с функцией, как преобразовать int&?
Аноним 09/03/17 Чтв 20:05:21  950064
>>949939
Думаешь что самый умный и разбираешься в схемотехнике лучше разработчиков микросхем?
Даже если допустить, что в процессорах уперлись в двоичную логику не из соображений схемотехники, то как быть с другими цифровыми устройствами? Например АЦП, ЦАП, цифровые фильтры?

>>949934
Таким же образом можешь взять FPGA и сделать себе троичный компьютер. Цена вопроса - 100$-200$
Аноним 09/03/17 Чтв 20:18:36  950068
>>949897
> Либо ты можешь объяснить, где именно в MLC троичность, либо пиздобол.
Ты сказал про информацию в бинарном виде, я тебе показал реально существующий формат хранения, где более двух логических уровней, т.е., не бинарный вид. Где я пиздобол?
Аноним 09/03/17 Чтв 20:27:22  950077
>>950033
int& - это ссылка, она же скрытый указатель на int. Все дереференсы внутри функции компилятор делает автоматически. Соответственно, тебе нужно заменить & на звездочку и проставить звездочки перед каждым использованием n1 и n2.
Аноним 09/03/17 Чтв 21:27:42  950113
>>950068

Ты пиздабол в том, что уровней там 2^n, и никакой врождённой троичности там нет.
Аноним 09/03/17 Чтв 21:35:01  950120
>>950113
Там 2^n, потому что это нужно для практического применения, и только. Если понадобится 3, будет 3, никаких принципиальных сложностей в этом нет.
Аноним 09/03/17 Чтв 21:43:48  950129
ошибка 0.jpg (84Кб, 474x342)
>>946603 (OP)
Блять помогите выделить 4 гигабайта памяти в программе, напишите мне простой хеллоу ворд с этим, я уже неделю ебусь, не могу выделить больше 1го. Самое ебаное что я не могу во-первых перемножить тысячи друг на друга, у меня получается ноь, НОЛЬ КАРЛ, а даже если написать одной цифрой размер то больше 1го гига система мне не выдаёт.
Аноним 09/03/17 Чтв 21:56:46  950141
>>950129
У тебя 32-битная или 64-битная система? Ты не можешь записать цифру в 4 гига в 32-битной переменной, будет вот этот самый ноль. Ты не можешь выделить 4 гига непрерывным куском (без PAE) в 32-битном коде, тебе не хватит адресного пространства - оно всего 4 гига, и даже если предположить, что тебе доступны все 4, есть еще твоя программа, которой тоже занимает какие-то адреса, деля 4 гига на сколько-то до, и сколько-то после. На 64-битной системе память вполне выделится, если только у менеджера кучи (у реализации malloc()) нет каких-либо ограничений на размер объекта.
Аноним 09/03/17 Чтв 22:33:56  950173
>>949904
>>949934
Сетунь и другие разработки закрыли из-за того что нельзя пиздить софт у пиндосов.
Аноним 09/03/17 Чтв 22:34:55  950174
>>950120

Там может храниться три "уровня" только в том случае, если ты выбросишь один "уровень". Никто в зздравом уме так делать не будет, это пустая трата ресурсов.

На кой ляд нужно получать троичную логику путём обрезания четверичной? КОМУ ЭТО НАДО?
Аноним 09/03/17 Чтв 22:35:40  950175
>>948976
>C (чистый, pure
Читай внимательнее, тупой крестодаун.
Аноним 09/03/17 Чтв 22:36:08  950176
>>950141

Очень правильно подметил - без PAE. На 2000, емнип, можно выделять до 36 ГБ в 32-битной ОС.
Аноним 09/03/17 Чтв 23:01:38  950207
mlc.png (28Кб, 568x208)
>>950174
> Там может храниться три "уровня" только в том случае, если ты выбросишь один "уровень"
Нет. Допустим, у тебя есть минимальный сигнал 0 и максимальный n. Ты можешь разбить получившийся диапазон на любое количество поддиапазонов m. Центр каждого поддиапазона с некоторым допустимым отклонением и будет логическим уровнем. Смотри пик. Причем m не обязано быть степенью двойки или четным числом, можно сделать m=3, ничего никуда обрезать не нужно. Но с ростом m растут требования к точности, становится сложнее избегать неоднозначностей, уменьшается надежность, поэтому когда тебе нужны гарантии, MLC сосет у SLC.
Аноним 09/03/17 Чтв 23:39:11  950225
>>950207

Спасибо, понял. Но то, что все кодеки, сжатия, кодировки и вообще всё работает с двоичными данными - это факт. Пока не будет разработан новый набор алгоритмов, которые работают быстрее на троичной логике (и они должны будут стать популярны), это всё нинужно.
Аноним 10/03/17 Птн 00:01:18  950233
Списывал одну прогу. Списал, работает, но не так как надо. ДЕБАГ
@
@
@
Прошло 3 часа, это говно по прежнему не работает. Муками и болью я дошёл до одного цикла, в котором, предположительно, была неисправность. Смотрю на свой цикл, смотрю на цикл исходной проги. Мой цикл ничем не отличается от того цикла, которой я пизжу. Ладно, проблема не в нём. ДЕБАГ
@
@
@
Прошло ещё 3 часа, ничего не изменилось, это говно не работает. Код уже как-то не пишется, голова не думает, я просто лежу на столике. Волею судеб скопипастил цикл из исходной проги себе в код. Вывожу им и его функцией вывода — вроде всё норм. Но моя прога и та, которую я списываю выводят информацию несколько по разному. Предположил, что обсёр в моей функции вывода инфы. ДЕБАГ
@
@
@
Прошёл ещё час, я не знаю в чём проблема. Функция исправна, всё вроде должно быть норм. На мониторе два ёбаных цикла, я всё ещё на том же месте, хех... Смотрю на них — полностью одинаковые. Полностью. На хуй мне два цикла? Делать всё равно нечего, займусь чисткой кода. Стёр свой цикл, свою функцию вывода перенёс в скопипизженный цикл. Закрываю вим, компиляю. ДЕБА... Стоп, ЧЁ БЛЯДЬ? Всё работает как должно. Неисправность таки была в моём цикле! Но... Они же были полностью одинаковые. ПИЗДА

А самое обидное-то то, что я не могу посмотреть где в моём цикле был фейл, так как вим был закрыт и история проебланилась. Вот такая история. Исходная прога выводила информацию(изображение) в терминал, символами, а моя работала с пикселями на экране. Это так, уточнение.
Аноним 10/03/17 Птн 00:38:41  950267
>>950233
Ибо нехуй копипастить.
Аноним 10/03/17 Птн 01:10:41  950284
>>950267
Наоборот же. Написанный мной цикл не работал, а скопипасщенный работал идеально. Вывод: Всегда нужно копипастить.
Аноним 10/03/17 Птн 11:27:55  950427
blob.png (45Кб, 822x542)
>>950077
Если честно, я не понял, до этого не использовал int, можешь подсказать где конкретно ставить?
Аноним 10/03/17 Птн 11:29:07  950428
>>950427
Ебучая разметка.
Если честно, я не понял, до этого не использовал int*, можешь подсказать, где конкретно звездочки поставить?
Аноним 10/03/17 Птн 11:39:04  950433
>>950427
>>950428

Чтобы получить указатель на lvalue, поставь & перед lvalue.
Аноним 10/03/17 Птн 11:44:12  950436
blob.png (14Кб, 676x398)
>>950433
Поставить &? Мне анон >>950077 про звездочки писал.
Мне просто нужно код из плюсов в обычный си перевести
Аноним 10/03/17 Птн 12:02:12  950440
>>950427
Ну почитай ты какую-нибудь книгу про указатели уже. Там всего два варианта. Или у тебя адрес в памяти. Или у тебя кампуктер читает значение, которое лежит по этому адресу памяти.
Угадай какое действие называется разыменование?
Аноним 10/03/17 Птн 12:22:21  950454
Блять, как я люблю передавать в функцию указатель на двухмерный массив. Постоянно переизобретать приходится.
Аноним 10/03/17 Птн 12:37:50  950463
>>950440
Обязательно читать? Если я этот код в простому коду си приведу, то выполню 70% лабы, а я уже заебался их делать каждую неделю по новой программе, анон, помоги пожалуйста, просто покажи где мне * ставить.
Аноним 10/03/17 Птн 13:10:07  950492
>>950436

void frag (int звёздочка fug) { ........ }

main()
{
int звёздочка fag;
int fig;

frag(fag);
frag(&fig);
}
Аноним 10/03/17 Птн 13:54:49  950530
>>950492
Дарю ЗВЕЗДОЧКИ всем ITT:
××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××
××××××××××××××××××××××××××××××××
Аноним 10/03/17 Птн 14:12:07  950536
>>950530
Лучше бы пездочки подарил
Аноним 10/03/17 Птн 18:04:35  950715
blob (190Кб, 1920x1080)
>>947060-юзер опять вернулся

Поставил CodeBlocks, поставил на него CSFML (по этому тутору: http://www.sfml-dev.org/tutorials/2.4/start-cb.php)
Создал пустой проект, прилинковал хуйню по этому же тутору
В проект закинул этот код (http://transit.iut2.upmf-grenoble.fr/doc/libcsfml-doc/html/)
Не копмилился из-за функций со звуком, убрал, скомпилолось
И вот нихуя

Ругается на функцию sfRenderWindow_clear() перед компилом ее комментирую, ЧТОБЫХОТЬЧТОТО
После компила кода открывается ебанаяблять консоль и ошибка
Аноним 10/03/17 Птн 18:05:33  950716
blob (33Кб, 732x353)
>>950715
Если раскомментировать
Аноним 10/03/17 Птн 18:12:36  950719
>>950716
а линковать?
Аноним 10/03/17 Птн 18:13:30  950721
>>950715
Библиотеки слинковал? Юзай SDL2 лучше
Аноним 10/03/17 Птн 18:17:47  950723
blob (26Кб, 738x570)
blob (26Кб, 738x570)
blob (25Кб, 736x544)
>>950721
>>950719
Все, что делал в настройках проекта
Кстати, библиотеки с третьего пика он не находит, даже если указывать прямой адрес

A SDL2 годен для чистого С?
Аноним 10/03/17 Птн 18:32:11  950730
>>950723
Да, у SDL2 сишный апи.
Аноним 10/03/17 Птн 18:34:26  950732
video.webm (1465Кб, 1364x768, 00:00:34)
>>950723
Ясен хрен. Для Си и сделано.
Аноним 10/03/17 Птн 18:38:22  950733
>>950732
Так ты ответь, что у меня не так D:
У меня даже окно не открывается после компиляции

>>950730
Можешь подкинуть туторы по SDL2 именно на чистом Си?
Никак не могу найти, везде для С++
Аноним 10/03/17 Птн 18:48:08  950737
>>950733
http://lazyfoo.net/SDL_tutorials/
Аноним 10/03/17 Птн 18:49:02  950739
>>950737
Не то.
http://lazyfoo.net/tutorials/SDL/index.php
Аноним 10/03/17 Птн 18:49:44  950740
2017-03-1020-43[...].webm (2338Кб, 1920x1080, 00:00:33)
>>950733
Алсо, попробовал сейчас этот SDL2 (даже на с++) и neehooя не работает
Либо я рукожоплю с линковкой (ничего в ней не понимаю, лол), либо это из-за х64-винды
Аноним 10/03/17 Птн 18:50:24  950742
>>950739
Так я про него и говорил, он для с++
Аноним 10/03/17 Птн 18:51:49  950744
>>950742
Лолшто? Для Си там.
Аноним 10/03/17 Птн 18:53:47  950746
Снимок.JPG (158Кб, 1366x768)
>>950740
Аноним 10/03/17 Птн 18:54:12  950747
>>950744
Энивей оно не запускается D:
Тут показал >>950740
Аноним 10/03/17 Птн 18:58:00  950749
>>950742
Ну и да. я в глаза долблюсь и туториал для плюсов. В любом случае, в самом SDL2 ничего плюсоспецифичного нет, у меня на обычном Си нормально работает.
Аноним 10/03/17 Птн 19:00:13  950751
2017-03-1020-58[...].webm (1755Кб, 1920x1080, 00:00:19)
>>950746
>>950749
Ну никак не получается, такое ощущение, что я где-то проебался, даже на плюсах не выходит
Аноним 10/03/17 Птн 19:03:26  950758
>>950751
Почему не #include "SDL2/SDL.h"?
А так в душе неебу, могу скинуть свой проект в аррхиве.
Аноним 10/03/17 Птн 19:05:44  950762
>>950758
Потому что прилинковал вплотную до заголовков
Да, будь добр, скинь
Аноним 10/03/17 Птн 19:09:13  950767
>>950762
https://drive.google.com/open?id=0B-r2vVph6iuFM0tOYWxxNDFVeU0
Аноним 10/03/17 Птн 19:25:04  950779
>>950767
Все просто, там используется 32-битный mingw, поэтому тебе надо 32-битную же SDL2. Помести из lib/x86 библиотеки SDL2.dll, SDL2_image.dll, libpng16-16.dll и zlib1.dll. Тогда появится окно с синим экраном.
Аноним 10/03/17 Птн 19:25:19  950781
>>950740
Попробуй запустить собранный .exe без IDE, из Explorer. Попробуй докинуть DLL-ки в папку с .exe.
Аноним 10/03/17 Птн 19:25:41  950782
>>950767
Хмм, а где брать SDL2_image.dll? И куда его потом класть?
Аноним 10/03/17 Птн 19:32:58  950790
>>950782
На сайте автора SDL, лучше скачать сразу полный комплект:
https://www.libsdl.org/projects/SDL_image/
https://www.libsdl.org/projects/SDL_mixer/
https://www.libsdl.org/projects/SDL_net/
https://www.libsdl.org/projects/SDL_ttf/
Класть в каталог с EXE-шником.
Аноним 10/03/17 Птн 19:37:55  950795
blob (70Кб, 961x1037)
>>950790
Все равно блятьблятьблять
Аноним 10/03/17 Птн 19:51:57  950802
542490572.png (3Кб, 126x149)
>>950795
Ты точно из lib\x86 библиотеки положил? Такое с 64-битными будет выскакивать.
Аноним 10/03/17 Птн 19:56:43  950803
>>950802
Подтверждаю, закинул х32 - заработало в отдельной папке.
Автор проги
Аноним 10/03/17 Птн 19:57:05  950804
Снимок.JPG (143Кб, 1368x770)
>>950803
Пик отклеился.
Аноним 10/03/17 Птн 20:15:07  950812
>>950804
Да в пизду, блять, снес сейчас всё нахой
Короче, вопрос открыт
Винда (х64), чистый Си, что юзать для 2д-графики и как, блять?
Аноним 10/03/17 Птн 20:18:20  950817
unnamed.png (45Кб, 300x300)
Снимок.JPG (140Кб, 1368x770)
>>950812
SDL2.
Аноним 10/03/17 Птн 20:28:43  950823
0e6.jpg (50Кб, 587x378)
>>950817
Без SDL/SDL2, пожалуйста D:
Аноним 10/03/17 Птн 20:39:55  950829
>>950812
ачко тваей мамашки юзай бббггеееее
Аноним 10/03/17 Птн 20:40:50  950830
>>950829
Что за бге? Или это типа бгееее? да блят гшщфцпждр45р
Аноним 10/03/17 Птн 20:42:28  950833
>>950830
Ебал тибя и весь твой род-урод в рот, хехе, малалетний лапоть. Иди нахуй, пицца остынет, хуйло ты.
Аноним 10/03/17 Птн 21:38:10  950872
>>950812
Поставь нормальную студию вместо этого кривой недо-IDE с кривым портом GCC. В ней все успешно собирается.
Аноним 10/03/17 Птн 21:43:52  950874
>>950872
Не слушай этого пидора.
Только открытые инструменты, только голый make только молодось, только хардкор!
Можешь юзанть Эклипс, он гибче и удобнее, кодблок можешь юзать для создания скетчей или потестить чего
Аноним 10/03/17 Птн 21:45:15  950876
542497231.png (22Кб, 755x385)
542497186.png (18Кб, 755x385)
542497195.png (18Кб, 755x385)
542497121.png (50Кб, 1068x655)
>>950872
Какого хрена ей еще надо, непонятно.
Аноним 10/03/17 Птн 21:46:31  950879
>>950874
Пидор твой отец членодевка, а этот кодоблокс в очко себе засунь, хуесос.
make-то как раз все норм собирается
Аноним 11/03/17 Суб 11:12:01  951067
>>950876

Стесняюсь спросить, а компилятор точно x86-64?
Аноним 11/03/17 Суб 11:13:59  951069
>>950876

И инклуды ты куда дел? Они точно инклудятся?
Аноним 11/03/17 Суб 13:01:07  951109
>>950876
Охуеваю с того что больше половины копротивляются с виндой, для прогинга она не годится.
Аноним 11/03/17 Суб 18:41:22  951398
>>951109
Это единственный неосилятор итт. Винда гораздо лучше годится для коденка - в винде есть нормальные отладчики и вижуал студия, а в линуксе только жцц.
Аноним 11/03/17 Суб 20:07:47  951453
>>951109
Зато для пердолинга годится. Как и С, азазахаха!
Аноним 11/03/17 Суб 20:18:53  951463
>>951398
>винде есть нормальные отладчики
Единственный CDB и то в VS, в которой нет С11 и С99, а есть только кресты.
Аноним 11/03/17 Суб 20:22:02  951467
>>951463
Чего из C11 нет в VS?
Аноним 11/03/17 Суб 20:47:34  951483
>>951398
No, it's not.
GCC дает хороший вывод о ошибках, есть gdb, есть clang, есть хуева туча компиляторов, и все можно потестить с помошью make или баш скрипта.
clang часто вообще пишет как это фиксить.
В винде в отладчики не смотят, особенно утята, да и выдают выхлоп такой себе.
Ну и уебищный гуй размывает понятие о том как вообще устроен свой код.
Аноним 11/03/17 Суб 21:00:14  951490
>>951483
> есть gdb
Для тех, кто хочет потратить 5 минут на ввод команд (вместо того, чтобы быстро глазками посмотреть код прямо в студии или дизасм в каком-нибудь x64dbg) в винде есть windbg, есть упомянутый cdb, да и gdb никуда не делся. В общем, есть выбор, и есть отладчики с GUI.

> В винде в отладчики не смотят, особенно утята
В винде как раз можно без проблем что-нибудь отладить, как свое, так и чужое, с символами и без. В линуксе из-за отстутствия вменяемых отладчиков большинство отлаживается printf-ами и git bisect-ом. Мало кто умеет хорошо пользоваться gdb, еще меньше тех, кто может нормально отладить в gdb stripped бинарники.
Аноним 11/03/17 Суб 21:03:48  951493
>>951467
_Generic
Аноним 11/03/17 Суб 21:09:34  951502
>>951490
>GUI
вот понять не могу, нахуй вы в этот ред заходите?
Аноним 11/03/17 Суб 21:15:27  951504
>>951493
Ок, уел. Оно все равно практически неюзабельное. Но все нормальные фичи из C99/C11 давно есть.

>>951502
Мне Си нужен для решения конкретных практических задач, и мне похуй, где именно я буду их решать, лишь бы это было быстро и качественно. А тебе, видимо, только ради "мам, смотри, я пердолюсь в консольку! мам, я вывел хелловорлд! я какир, мам!".
Аноним 11/03/17 Суб 21:25:04  951509
generic.png (32Кб, 650x422)
>>951493
>>951504
Впрочем, при желании VS компилирует и _Generic. Хоть и несколько охуевает от себя самой.
Аноним 11/03/17 Суб 21:45:26  951525
>>951483
Но самый главный плюс линукса как платформы для разработки в том, что там нет винды.

Нет, серьёзно, в винде я постоянно пердолюсь в какие-то базовые вещи, которые везде есть из коробки. Такое чувство, что ОС мешает мне пользоваться программами, попутно разваливаясь, в связи с чем возникает необходимость подпирать её довольно уродливыми костылями.
В 2017 году винда нужна исключительно как зависимость для кадов и игорей, для всего остально существует мак или прыщи. Тащемта что угодно можно поставить, только бы без винды. Это продукт созданный для заработка денег, из-за чего в него постоянно лепили (опять же) костыли, много костылей, только бы внешне он выглядело нормально, а что под капотом все срать хотели, это никому не нужно.
Аноним 11/03/17 Суб 21:49:36  951533
>>951525
Под линукс есть IDE для сишки, которые не выглядят всрато?
Аноним 11/03/17 Суб 21:51:54  951535
>>951533
Eclipse (бесплатно), CLion (платно).
Аноним 11/03/17 Суб 22:23:04  951555
>>951525
> в винде я постоянно пердолюсь
Так осиль уже винду, перестань пердолиться и начни жить!
Аноним 12/03/17 Вск 09:34:49  951748
Чем можно измерить время работы программ (время очень малое)?
Аноним 12/03/17 Вск 10:21:25  951767
>>951533
QtCreator, CLion.
Все остальное можно даже не рассматривать
Аноним 12/03/17 Вск 11:05:49  951797
>>951748
Очень малое время можно измерить в очень малых единицах измерения времени.
Аноним 12/03/17 Вск 11:21:36  951804
>>951797
Sloved by /pr/
Аноним 12/03/17 Вск 11:30:56  951808
>>951509
Ну ты видимо используешь clang/C2, а я не хочу его использовать.
Аноним 12/03/17 Вск 12:05:56  951820
>>951748
Миллисекундами. Запускай много раз, бери минимальное или общее.
Аноним 12/03/17 Вск 12:07:46  951822
>>951820
Не, зачем вы так меня тралити?
Аноним 12/03/17 Вск 12:27:20  951830
http://faehnri.ch/how-c-is-not-a-subset-of-cpp/
Аноним 12/03/17 Вск 14:10:40  951877
>>951748
time laba3
Аноним 12/03/17 Вск 14:15:37  951883
>>951767
emacs.
Аноним 12/03/17 Вск 14:17:28  951885
>>951883
не пытайся научить обезьяну разговаривать, будь выше этого.
Аноним 12/03/17 Вск 14:17:41  951886
>>951525
Реклама в проводнике и дубликаты программ наше все. Кады и триде вообще давно на линукс перекатилось.
Аноним 12/03/17 Вск 14:17:48  951887
>>950141
64, но щас поглядел битность у самой программы 64
Аноним 12/03/17 Вск 14:20:52  951889
>>951830
ничего нового.
Dmitry 12/03/17 Вск 14:23:12  951893
>>951885
Антохи что лучше Cmake или Qmake для Qt5 параши разумеется?
Dmitry 12/03/17 Вск 14:23:40  951894
>>951893
Надо чтобы работало онли фор Linux.
Аноним 12/03/17 Вск 14:24:19  951895
>>951894
Уебывай в крестотред.
Dmitry 12/03/17 Вск 14:25:37  951896
>>951895
Можно же и на C писать.
Аноним 12/03/17 Вск 14:26:18  951897
>>951896
Нет, под Qt нельзя писать на Си. Вали.
Dmitry 12/03/17 Вск 14:30:04  951901
>>951897
А под GTK3?
Аноним 12/03/17 Вск 16:46:11  951990
pp.png (146Кб, 1366x768)
почему нижний выдает ошибку сегментации?
Аноним 12/03/17 Вск 18:10:17  952040
>>951990
Ты бы еще серым по белому код рисовал."string literal" - это не char ∗, а const char ∗. В верхнем варианте ты создаешь массив s1 и копируешь в него строку (при инициализации), поэтому все ок. В нижнем варианте ты ссылаешься на сам литерал, strtok пытается его модифицировать, а компилятор вполне мог сделать его ридонли.
Dmitry 12/03/17 Вск 18:42:46  952063
Аноны а зачем clang and gcc на плюсах пишут? Почему говорили что зря так делали? И действительно ли надо компилятору ООП и темплейты и прочая хрень? Теперь если gcc без поддержки плюсов собирать то он потом и сам себя не соберет.
Аноним 12/03/17 Вск 19:10:34  952087
>>952063
Не стоит вскрывать эту тему.
Аноним 12/03/17 Вск 19:16:53  952091
>>951990
спс. а можно как нибудь указать что он не ридонли?
Аноним 12/03/17 Вск 22:20:59  952207
>>952091
Модификация строкового литерала - undefined behavior, так что просто не нужно этого делать. Видишь строку в кавычках, подразумеваешь char const * const.
Аноним 12/03/17 Вск 22:30:38  952214
>>952091
объявляй в глобальной видимости. s[] = "sadsadasd".

компилятор же не будет дублировать строчку?
Аноним 13/03/17 Пнд 00:38:11  952276
Раз уж тут за OpenGL начали пояснять, то продублирую свой вопрос из /gd/:
Есть вопрос по блендингу - появилась какая-то непонятная для меня вещь:
Сначала включаю glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA), рендерю свет. Потом - glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA) и рендерю соника - но вокруг него вдруг появляется какая-то левая рамка, причем разная для разных изображений.
Знаю, что двухмерный свет надо делать по-другому - сначала рендерятся предметы, затем отдельный черный фреймбуфер для сплошной тени, потом из него вырезаются кружки света, и уже потом он рендерится поверх всего остального. Но все равно интересно, отчего такое происходит.
Хоть в какую сторону копать?
Аноним 13/03/17 Пнд 04:48:37  952345
>>952214
Только не обязательно глобальную переменную городить: static char s1[] = "foo"; вполне себе дает модифицируемую строчку без накладных расходов на инициализацию.
Аноним 13/03/17 Пнд 12:52:14  952631
Поясните по хардкору, каким образом функция realloc выбирает ячейки? Или же ячейки выбирают тебя?
Аноним 13/03/17 Пнд 13:14:14  952660
>>952631
В простейшем случае у менеджера кучи есть список блоков (адрес, размер, статус), причем свободные блоки склеиваются. Если следующий за твоим блок свободен, и он достаточного размера, realloc() просто отрезает от него нужный кусок в пользу твоего. Если нет, она идет по списку и ищет (первый попавшийся или, например, наимешьший) подходящий свободный блок. Обычно списков несколько, а дескрипторы блоков более сложные. Если ты не об этом, тогда уточни вопрос.
Аноним 13/03/17 Пнд 21:01:28  953002
Когда я программировал на линуксе в gedit с помощью кланга и консолечки я мог просто в папку с исходным файлом добавлять библиотеки, которые мне нужны и подключать их. А когда я начал в виндовс программировать, с помощью DecCpp но на си я не могу так сделать. Надо какие то либы подключать или что там. Так как сделать так чтобы я библиотеки (.h файлы), которые будут находится в папке с проектом мог подключать?
Аноним 13/03/17 Пнд 21:02:10  953003
Раз уж тут за OpenGL начали пояснять, то продублирую свой вопрос из /gd/:
Как загрузить текстуру так, чтобы загружать не из отдельного файла, а из кода? То есть я напишу хекс код картинки и она будет загружена в текстуру? как это сделать?
Аноним 13/03/17 Пнд 21:13:34  953009
>>953002
Идешь в свойства проекта, указываешь директории с инклудами и либами. Инклуды инклудишь через #include <file.h>, дополнительные либы указываешь в поле для дополнительных либ.

> которые будут находится в папке с проектом мог подключать?
#include "file.h"

>>953003
> То есть я напишу хекс код картинки и она будет загружена в текстуру?
Абсолютно так же, как и из файла, через glTexImage2D создается текстура, в последнем параметре адрес твоего массива с картинкой. Если нужно конкретнее, пости компилирующийся хелловорлд.
Аноним 13/03/17 Пнд 21:28:32  953024
>>951533

Угу, Xcode.

>>953003

Очень просто. Картинка у тебя УЖЕ в памяти (в виде массива unsigned char, но могут и иных типов) просто кидаешь её указатель в OpenGL. Правда, ещё нужно её параметры правильно. Размеры, глубину пикселей, их тип (RGB, RGBA и прочие).

Пример:

float pixels[] = {
0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f
};
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_FLOAT, pixels);

Хуле не ясного?
Аноним 14/03/17 Втр 09:09:24  953355
Снимок.JPG (29Кб, 791x789)
>>953024
>>953009
Спасибо, теперь у меня всё почти получилось.
Аноним 15/03/17 Срд 13:27:29  954309
Inked143555LI.jpg (1545Кб, 738x283)
>>946603 (OP)
Сап ананасы, вкатился нуфаг. Дали задание:найти количество отрицательных элементов массива и вставить найденное кол-во перед первым в массиве отрицательным числом. Я написал какую-то поеботу, которая ищет сами элементы, но не могу додуматься, как вывести их кол-во. Прошу подсказки, пик прилагаю.
Аноним 15/03/17 Срд 14:45:00  954351
>>954309
Заведи счетчик, положи в него 0, а когда найдешь отрицательный элемент, прибавь к счетчику 1. После цикла выведи счетчик.
Аноним 15/03/17 Срд 14:45:34  954352
Чет я не понял, кланг прямо из коробки в 2017 еще установить нельзя что-ли, собирать обязательно? Попытался хеловорд запустить с него, а он полез куда-то в инклуды визуал студии, что это было?
Аноним 15/03/17 Срд 15:14:15  954372
>>954352
Ну вроде работает, но все равно не понимаю, нахуя он лезет куда-то в тулкиты которые вместе с визуалкой установились?
Аноним 15/03/17 Срд 15:44:56  954406
>>954351
Что за счетчик? Пытался нагуглить, но нашёл таковой только в c++.
Аноним 15/03/17 Срд 16:35:47  954444
5.JPG (79Кб, 969x750)
>>954406
Всё, вроде бы понял, даже получилось. Но как сделать элегантней, под один цикл не получается вывести?
Аноним 15/03/17 Срд 16:44:53  954450
>>954444
if (условие) {
выражение1;
выражение 2;
нутыпони;
}
Аноним 15/03/17 Срд 17:50:38  954502
>>954450
Ок, уяснил. Еще вопрос, написано сделать "Вставка найденного количества перед первым в массиве отрицательным числом ", что это значит?
Аноним 15/03/17 Срд 17:59:55  954509
4135.JPG (55Кб, 927x536)
>>954502
UPD: Т.е. мне нужно вывести все элементы массива и как-то пропихнуть перед первым отрицательным элементом моё число S. Как это сделать?
Аноним 15/03/17 Срд 18:09:04  954515
>>954509
тебе нужен динамический массив.
Аноним 15/03/17 Срд 18:14:32  954519
>>954515
хотя... проще будет создать еще один массив размером n+1 и последовательно копировать данные как тебе надо
Аноним 15/03/17 Срд 20:18:38  954628
Есть динамический массив. Я могу из него вырезать в центре кусок, прикрутить в конце другой, при этом не проебав все данные?
Аноним 16/03/17 Чтв 07:13:08  954852
>>954628
ты совсем плох.
Аноним 16/03/17 Чтв 08:31:45  954863
>>954852
Перефразирую. Через realloc() не проебутся данные в массиыве, если я его увеличиваю/уменьшаю?
Аноним 16/03/17 Чтв 08:47:48  954866
>>954863
RTFM.
http://en.cppreference.com/w/c/memory/realloc
Аноним 16/03/17 Чтв 09:17:45  954871
>>954863
Если realloc() увеличивает размер объекта, то сохраняется (копируется) то, что было, а остальное тебе нужно инициализировать самому. Если размер объекта уменьшается, данные обрежутся. И не забывай про то, что адрес объекта смениться может.
Аноним 16/03/17 Чтв 09:30:47  954874
>>954871
Вот, именно то. Т.е при уменьшении размера данные в начале не повредит? Это именно то,что я и хотел, спасибо.
Аноним 18/03/17 Суб 09:09:46  956169
То, что scanf %d будет возвращать ноль, если получит только символы и будет возвращать -INT_MAX, если получит число вне int, это твёрдо и чётко, можно проверки делать, опираясь на это?

Аноним 18/03/17 Суб 09:17:10  956175
>>956169
Да. Только не -INT_MAX, а EOF. Но лучше парсить ручками через strtol и прочие strto*. scanf подходит только для лаб.
Аноним 18/03/17 Суб 10:06:47  956201
Image 001.png (8Кб, 600x223)
>>956175
Мне просто надо считать число, а введена может быть любая белиберда.
Я не понимаю, почему происходит пикрил.
Сначала scanf грит, что всё норм, возвращает 1 и число 23, хотя там "23у35".
А потом она начинает без ожидания ввода считывать что попало, у меня так при проверках бесконечно циклится сообщение, что введено не то.
Аноним 18/03/17 Суб 10:10:50  956204
>>956201
Т.е. если я пишу
while (scanf("%d", &c)!=1)
{
printf ("Eshe raz, plz\n");
}
то у меня просто циклится сообщение printf.
Аноним 18/03/17 Суб 10:24:50  956209
>>956204
> то у меня просто циклится сообщение printf.
Потому что scanf не с чем конец строки (для нее это whitespace) матчить - добавь пробел или \n (похуй) в шаблон scanf. А лучше не ебать себе мозг хуйней, сдизайненной для студентов и рептилоидов, и явно сделать fgets и strtol, проверяя ошибки.
Аноним 18/03/17 Суб 10:37:55  956213
>>956175
>scanf подходит только для лаб
sscanf'ом так удобно из строки достать значения, в одну строчку. Через strtol надо городить огород из условий. У меня иногда возникает необходимость распарсить текст на няшной, есть какие-то готовые инструменты, чтобы самому не заниматься велосипедостроением? Пытался mpc использовать для этого, но так и не смог разобраться, вроде похоже на скрипт для flex, но не то. Можно использовать flex/bison для сложных случаев, но для более простого хотелось бы что-то попроще.
Аноним 18/03/17 Суб 12:58:15  956277
screen.png (16Кб, 644x193)
Почему говорит что возвращаемый тип неправильный?
Аноним 18/03/17 Суб 13:22:25  956286
>>956277
Кто говорит? Как говорит?
Аноним 18/03/17 Суб 13:37:13  956295
0.jpg (48Кб, 629x410)
>>956277
У меня GCC 5.3.0 собирается это без ошибок и предупреждений.
Аноним 18/03/17 Суб 13:50:01  956302
>>956295
Может быть, он stdlib забыл подключить, хуй знает.
Аноним 18/03/17 Суб 19:15:59  956468
>>956295
GCC 5.4.1

Смотрю у тебя тоже Geany который умер и не развивается из-за всяких модных саблаймов
Аноним 18/03/17 Суб 19:20:49  956474
>>956468
Блять, скинь полный компилирующийся код на ideone, зачем нам твои скриншоты?
Аноним 18/03/17 Суб 19:27:46  956478
>>956474
Хм, Clang 4.0 ничего не говорит http://ideone.com/kYgRPy а GCC 6.3 вообще не компилится http://ideone.com/aHWlYP
Значит проблема в последних версиях GCC 5 и 6
Аноним 18/03/17 Суб 19:33:41  956480
>>956478
1) Huita - тайпдеф для безымянной структуры.
2) Функция huita_new возвращает указатель на struct Huita.
3) А по факту возвращает указатель на безымянную структуру типа Huita.
Конечно же, компилятор ругается. Если ты хочешь использовать struct- и typedef- имена взаимозаменяемо, сделай typedef struct Huita { ... } Huita;
тулкит-кун Аноним 19/03/17 Вск 06:12:15  956737
Давно не посещал этот тред, но думаю несколько Анонов меня должны помнить.
Я не забросил и до сих пор пишу свой GUI-тулкит. Раньше я делал GTK-подобной тулкит, с объектами, но относительно недавно в глаза бросился нукляр и я захотел запилить что-то вроде него, но не такое глючное и более подходящее для моих задач. Нукляр это функциональщина, если кто не знает. while(true){ if(create_button() == 1) printf("press"); } Никаких объектов.
Всё шло тащемта хорошо, но возникла необходимость кэшировать результаты вычислений, чтобы мой высер не тупил как чёрт знает что.
Простой пример: Есть виджет "button", кнопка. Кнопка может принимать множество состояний — нажатие, отжатие, align, обычное состояние etc. Допустим тулкит рисует первый кадр в котором кнопка находится в обычном своём состоянии. Тулкит трудился, считал, срал на битмап и вот она кнопочка. Заебись.
Второй кадр. По хорошему стоит узнать, не изменилось ли состояние кнопки, и если не изменилось, то просто скопировать часть готового битмапа в новый кадр. На словах это просто, но как сделать что-то подобное без объектов непонятно. У меня ведь нет никакой информации о том, что было с этой, конкретной кнопкой в прошлом кадре. Ну и с чем мне сравнивать?
Если бы у меня было что-то вроде GTK, с объектами, то всё было бы действительно просто. В функцию отрисовки кнопки прилетает указатель на объект button, в котором хранится вся информация именно о этой кнопке, о том, что было с ней в предыдущем кадре, о том, что с ней сейчас, и на основе этого легко понять нужно ли брать готовую картинку из предыдущего кадра или нарисовать по новой. ИРЛ всё совершенно иначе, всё вышесказанное простое упрощение, главное что смысл понятен. А если объектов нет, то как?

*Надеюсь этот текст хоть кто-то понял. Тут вроде были понимающие в GTK люди, да и нукляроёбы тоже были.%%

Алсо, почему нукляр взлетел? Он же ничего не кэширует и рисует с нуля каждый кадр, это долго. Я понимаю, что его в основном использует с OpenGL и т.п. штуками, но блядь, всё равно не круто.
Аноним 19/03/17 Вск 08:06:08  956742
1419659280642.jpg (35Кб, 450x360)
VX-Rexx-1.png (8Кб, 640x480)
Workshop.png (5Кб, 487x420)
Captured1.png (3Кб, 681x462)
>>956737
>Надеюсь этот текст хоть кто-то понял. Тут вроде были понимающие в GTK люди, да и нукляроёбы тоже были.
Тут есть даже я, разобравший Иксы и Presentation Manager и заново их собравший, как Никола Тесла собирал и разбирал электромоторы в уме, и так несколько раз. Очень просто они устроены, не нужны там некокие «объекты-субъекты», каждое окно и каждое поле ввода получает сообщение "paint" через обыкновенную очередь сообщений (не сокет и не пайп, они там тоже нинужны) и вызывает функции вроде «ставь точку вон туда» с координатами, и только-то.

Ты бы лучше вот подумал, на кой хер нам ещё один новый GUI-тулкит и куда нам его, солить?.. Их десятки, а будут сотни, и всё, что тут можнозделоть — дать им растровую сетку (по одной для каждого окна верхнего уровня) и пусть на ней и рисуют.
Аноним 19/03/17 Вск 08:43:36  956752
>>956742
> каждое окно и каждое поле ввода получает сообщение "paint" через обыкновенную очередь сообщений (не сокет и не пайп, они там тоже нинужны) и вызывает функции вроде «ставь точку вон туда» с координатами, и только-то.
Стоп-стоп-стоп. Либо я тебя неправильно понял, либо ты описал функцию отрисовки.
У меня есть линия. Горизонтальная. На 10 пикселей. Чтобы такую нарисовать нужно поставить 10 точек, 10 итераций цикла. Можно конечно 120 раз в секунду ебашить по 10 итераций, но линия-то как была, так и есть, ничего не меняется. В таком случае гораздо производительнее, условно говоря, вместо 10 итераций выполнять один memcpy. Но в моей ситуации эта линия может измениться, цвет поменять, ещё что, и memcpy тут не обойтись, нужно заново пройти 10 итераций и нарисовать линию запрошенную изменениями, и потом опять до момента изменения копировать память. Проблема тут в том, что без объектов тулкит не может узнать поменялась ли линия, т.к. он не знает что было с ней в прошлом кадре.

Если я тебя просто неправильно понял, то опиши свою мысль нагляднее, пожалуйста.

> на кой хер нам
> нам
Мне. Я хочу написать то, на чём мне будет удобно писать свои хотелки. GTK говно, нукляр баговый и не для моих целей. В остальном у нас есть груда крестоговна и различные обвязки.
Аноним 19/03/17 Вск 09:37:53  956761
>>956737
> А если объектов нет, то как?
Создавай глобальную переменную для каждой кнопки и там храни.
Аноним 19/03/17 Вск 09:38:55  956762
Captured1.png (4Кб, 939x255)
heilgate.jpg (45Кб, 500x393)
>>956752
>Либо я тебя неправильно понял, либо ты описал функцию отрисовки.
Попробую ещё раз на примере сетевых протоколов, где несколько слоёв.
1. Драйвер видеокарты: это он переключает кадры, это он работает с видеобуфером, о чём никто кроме него даже и не знает.
2. Оконный менеджер: он создаёт области разделяемой памяти (они же растровые сетки) и выдаёт их окнам по запросу. Важно, что он никогда не ждёт никого из тех, кому выдаёт разделяемую память, вместо этого они присылают ему запросы, а он отвечает на них, и иногда (возможно) бросает на верхний уровень краткие уведомления — но никогда и никого не ждёт, чтобы не зависнуть вместе с какой-нибудь Мозиллой-Тормозиллой. Думаю, что книги Таненбаума тут помогли бы, но в общем, эти возможности есть в современных ОС уже наверное во всех.
3. Служебный поток в каждой проге: отправляет "send"-запросы на низкий уровень, получает от него растровые сетки и возвращает их назад — и вопреки стереотипам, это работает ни разу не медленно, поскольку на отображение страниц памяти расходуется очень немного времени и тактов процессора.
4. Поток отрисовки, он же поток обработки сообщений: у него своя очередь, куда ему последовательно ставят задания и уведомления о том, что произошло, будь то нажатие на клавишу или сигнал от таймера или сообщение "paint". Он ставит точки на растровой сетке и ничего даже о ней не знает. Зато у него есть шрифты, цветовая палитра (тут сто миллионов цветов, если мало, добавим ещё), штриховки-закраски, границы отсечения, границы им нарисованного и т.д.д.д.д.д.
5. Тулкит, фреймвор, C++ и браузер. Ещё встроенная СУБД с хранимыми поцедурами и куча ключевых слов, "лет", "муд", "фн", "твюэйт", "патирнь", "салюжяньсь".
6. Скриптовый езыг поверх всего етово.
7. Самый последний XML.
8. Таблица стилей.
9..........
10.....
11...
...

>У меня есть линия. Горизонтальная. На 10 пикселей. Чтобы такую нарисовать нужно поставить 10 точек, 10 итераций цикла.
Не ставь точку, если на растровой сетке она уже стоит, не терзай кеш процессора.

>Можно конечно 120 раз в секунду ебашить по 10 итераций, но линия-то как была, так и есть, ничего не меняется.
Этим пусть занимаетьса драйвер видеокарты, сколько там у него кадров-в-секунду.

>В таком случае гораздо производительнее, условно говоря, вместо 10 итераций выполнять один memcpy.
Вне видеодрайвера? Ни разу не будет выполнено ни одной memcpy.

>Но в моей ситуации эта линия может измениться, цвет поменять, ещё что,
Тогда у тебя поток отрисовки, он же поток обработки сообщения, вытащит из очереди сообщение "paint" и начнёт рисовать.

>и memcpy тут не обойтись, нужно заново пройти 10 итераций и нарисовать линию запрошенную изменениями,
Ну и что, поставь границы отсечения и не будет он рисовать за ними.

>и потом опять до момента изменения копировать память.
Выше видеодрайвера не надо копировать память. Потом, когда-нибудь, он получит сообщение от кококонного менеджера (и зачем я всё это пишу, а?) и перенесёт изменённый прямоугольник в видеопамять. Это никого на верхнем уровне волновать не должно.

>Проблема тут в том, что без объектов тулкит не может узнать поменялась ли линия, т.к. он не знает что было с ней в прошлом кадре.
Объекты вам принёс великий маг и чародей Бэльгэйц чтоб вы сидели тихо и не рыпались и не смели никуда мигрировать с маздаЯ.
Объекты под люнюфьсь — это вообще такой трешак, что ни в сказске скозать ни пером описать, вот правду говорят, у семи нянек дитя без глазу.

>Если я тебя просто неправильно понял, то опиши свою мысль нагляднее, пожалуйста.
БРОСЬ КАКУ!!!

IRL, классы объектов — это всего лишь правила доступа к данным, то есть контракты только и всего.
Аноним 19/03/17 Вск 09:45:04  956763
>>956761
Это называется window handle.
Аноним 19/03/17 Вск 10:27:50  956769
>>956761
Не выйдет. Мой тулкит работает следующим образом. Есть цикл и в нём весь рантайм(это в пользовательской программе):
int main(void)
{
while(true)
{
draw_button("button1");
draw_button("button2");
draw_button("button3");
}
}
Довольно грубый пример. И вот я записываю каждую кнопку в свою глобальную переменную и ориентируюсь на неё. Круто? Да. Но крутость продолжается до тех пор, пока в цикл кто-то не добавит какое-нибудь условие вроде:
...
if(shit == 1) {
draw_button("button2.5");
}
...
В кишках тулкита всё пойдёт по пизде, т.к. всегда летели три кнопки, а сейчас внезапно четвёртая пришла. Что с ней делать? Откуда она? Я ведь не могу контролировать цикл вне своего тулкита.
Если прикрутить сюда объекты, то это тоже ничего не решит, всё в любом случае будет пидорасить. А для того, чтобы не пидорасило, нужно чтобы в пользовательской проге всё определялось один раз и после всем заправлял тулкит, как в GTK:
int main(void)
{
draw_button("button1");
draw_button("button2");
draw_button("button3");
toolkit_main_loop();
}
Привет каллбекам и прочей параше.

>>956762
Ты описываешь какую-то низкоуровщину, с которой мне и работать не придётся, а я не могу тебя понять, связи не вижу.

Всё что у меня есть это bitpixmap так же они называются?. Указатель на память, куда я пишу данные, из которых образуются пиксели. Для простоты создана функция draw_point(x, y).
> Не ставь точку, если на растровой сетке она уже стоит
У нас недопонимание друг друга. Каждый кадр это:
- Очистка пиксмапа
- Отрисовка чего-либо на него
- Скармливание пиксмапа бэкенду отрисовки (иксы/валеный/etc)
А потом заново. В такой ситуации место установки следующей точки всегда равняется нулю, там ничего нет. А если я не буду очищать пиксам, то при анимации виджетов будут артефакты. В любом случае нужно всё тереть.

> Этим пусть занимаетьса драйвер видеокарты
> Вне видеодрайвера?
НЕТУ ДРАЙВЕРА ВИДЕОКАРТЫ
Есть пиксмап и всё.

> Ну и что, поставь границы отсечения и не будет он рисовать за ними.
Я... Наверно... Другое имел в виду. Голова уже болеть начинает.

Слушай. Я, бля, нихуя тебя не понимаю. Я тут велосипедирую графический тулкит а не графический сервер. Возможно всем этим ты хотел донести до меня великую истину, но я её не уловил. Можно толще? Вот пиксмап у меня есть. Всё. Больше ничего нет. Аще.
Аноним 19/03/17 Вск 10:42:46  956774
>>956769
>Каждый кадр это:
>Очистка пиксмапа
Как я и думал, в условиях "свободного ПО" дитя оказывается без глазу.

>Вот пиксмап у меня есть. Всё. Больше ничего нет. Аще.
Там должны быть границы, регионы, прямоугольники и тому подобное.

То есть, каждому окну рамки нужны:
- Регион, где разрешается рисовать (внутренние границы отсечения)
- Регион, где рисовать надо (например, область окна, требующая обновления)
- Регион, где рисовать не следует (например, области, перекрытие другими окнами)
- Прямоугольник, где разрешается рисовать (внешние границы области рисования)
И т.д.

Возможно, все они могут быть сведены к двум прямоугольникам и регионам: "прямоугольник, задающий область рисования" и "регион, задающий пробелы в области рисования".

И ещё надо запоминать и выдавать на уровень ниже границы того, что действительно было нарисовано. Чтобы облегчить работу графического сервера, видеодрайвера и всех остальных.

И ещё нужна очередь сообщений и всё остальное. Твой пример с циклом "while" это называется OpenLook и от этого давно отказались. Примеры как он выглядел и как под него писали код нетрудно найти в Гугле.
Аноним 19/03/17 Вск 11:16:11  956781
>>956774
> - Регион, где рисовать надо (например, область окна, требующая обновления)
Как понять где требуется обновление? Посмотри на картинку. Это, короче, кадр и новая итерация в пользовательском цикле. На окне размещено куча кнопок, но нажата т.е. требуется обновить только одну, размещённую где-то в средине кода кнопку. И вот, опять же, цикл:
while(true)
{
draw_button("button");
draw_button("button");
draw_button("button");
...
draw_button("button"); // Вот она!
...
draw_button("button");
draw_button("button");
draw_button("button");
}

Как видишь нужна кнопка в центре и только она, но я никак не могу прыгнуть прямо на неё, мне сначала нужно отрисовать все предыдущие кнопки. Чтобы оптимизировать всё это дело желательно как-то проверять в функции draw_button поменялось ли в неё что-то с прошлого кадра, и если не поменялось, то достаточно просто скопировать уже просчитанный результат из этого самого предыдущего кадра, не просчитывая всё повторно. Вот не получается узнать поменялась ли.

> OpenLook
Спасибо, буду постигать.
Аноним 19/03/17 Вск 11:16:48  956782
2017-03-19-1001[...].png (12Кб, 1046x396)
>>956781
Картинку забыл.
Аноним 19/03/17 Вск 11:20:18  956783
>>956769
Или ты делаешь никому не нужное неудобное stateless-говно (хайп вокруг nuklear скоро кончится), или ты делаешь объекты и колбеки. Или ты делаешь еще большее говно, давая контролам уникальные айди и создавая внутри объекты по требованию. Колбеков не будет, но это единственное преимущество. Можешь еще адрес возврата получать вместо id, лол.
Аноним 19/03/17 Вск 11:35:33  956789
>>956783
Как сложно жить.
Аноним 19/03/17 Вск 12:02:34  956801
VisiOnCalc.png (4Кб, 641x402)
GS-OS.png (6Кб, 640x400)
Macintosh.png (11Кб, 652x434)
OS2.png (10Кб, 650x494)
>>956781
>нужна кнопка в центре и только она, но я никак не могу прыгнуть прямо на неё, мне сначала нужно отрисовать все предыдущие кнопки
NYET.
Каждая кнопка это окно, а у каждого окна есть границы.
Действия мышкой над этими границами приведут к тому, что в окно будет направлено сообщение "мышь нажата".
Обработчик сообщений для окна выберет это сообщение из очереди и затем начнёт рисование в окне. При этом будут заданы границы того, где он может рисовать (ему не разрешат ничего рисовать вне границ окна), а по окончании всех его действий с растровой сеткой будут заданы границы того, где он нарисовал.
Растровая сетка будет возвращена оконной оболочке вместе с границами нарисованного.
Драйвер устройства перенесёт нарисованное в видеопамять.
>Вот не получается узнать поменялась ли.
Графическая среда сохраняет состояние, вот этот >>956783 анонимус прав.
Аноним 19/03/17 Вск 12:13:40  956804
>>956801
Так вы о разных вещах говорите. Он говорит о stateless-GUI, который каждый кадр реквестит отрисовку всего нужного на текущий момент GUI (может так случиться, что это каждый кадр совершенно разный GUI), тулкит придумывает элементам интерфейса прямоугольники, юзает какой-нибудь алгоритм, чтобы придумать layout этим прямоугольникам, срет результатом в видеокарту, а в конце кадра забывает обо всем. Если однажды при отрисовке клик попал в один из прямоугольников - юзер получает клик, если нет - хуй с ним. Весь необходимый стейт (состояние чекбокса, текст и курсор в поле ввода и т.д.), хранит не тулкит, а вызывающий код.
Аноним 19/03/17 Вск 12:23:31  956807
>>956801
Да, мы говорим о разных вещах.


Честно говоря даже не знаю как поступить. У меня полно хороших задумок хороших программ, но я каждый раз сталкиваюсь с необходимостью написания своего тулкита, и вот я пытаюсь осилить его битый год. Подход нукляра, какой же он охуенный. Я уже думал, что в скором времени таки допишу тулкит и буду заниматься чем-то действительно полезным, но обосрач. И что, опять возвращаться в степь GTK? Меня тошнит от GTK.
Аноны, как вы видите идеальный тулкит для гуя? Цели: Простые десктопные приложения. С чего брать пример?
Аноним 19/03/17 Вск 13:54:31  956869
>>956807
>С чего брать пример?
Попробуй поковырять CLIM, интересная штука.
Dmitry 19/03/17 Вск 14:42:40  956902
>>956807
Сравни для начала все что есть.
На QT+C можно тоже писать.
Clutter, SDL, GLFW, EFL смотри.
Аноним 19/03/17 Вск 15:09:13  956918
>>956807
ты же уже инвестировал в изучение gtk
юзай его
Аноним 19/03/17 Вск 17:15:51  956980
>>956902
>На QT+C можно тоже писать
Нельзя, дебилушка
Аноним 19/03/17 Вск 21:10:47  957081
>>956980
Можно маня, VLC так и написан.
Аноним 19/03/17 Вск 21:44:51  957108
>>957081
>VLC так и написан
ты че, ёбнулся? qt морда на c++ полностью, а работа с видео, стримами, устройствами на C
Аноним 19/03/17 Вск 21:48:22  957109
>>956807
Тулкит ненужен.
WinAPI.
Аноним 19/03/17 Вск 21:59:38  957115
>>957109
Cпермо-маням ничего не нужно.
WinAPI и есть тулкит, тупые блядь.
Аноним 19/03/17 Вск 22:00:20  957116
>>957108
Ну так тоже вариант.
Аноним 19/03/17 Вск 22:58:00  957144
>>956902
> Сравни для начала все что есть.
GTK и QT? В общем они одинаковые. Я много чего крутил в руках, но всё оно либо одинаковое, либо укуренное.

> Clutter, SDL, GLFW, EFL смотри.
Это же бэкенды отрисовки, что там смотреть.


В целом мне нужен концепт размещения виджетов на экран. В GTK есть пакование в боксы и grid(в 3.0+), ни то ни другое мне не показалось приятным, а если я сделаю свой GTK но с размещением как в нукляре, то это, вероятно, будет совсем пиздец. Что делать — хуй знает.
Аноним 19/03/17 Вск 23:36:33  957165
Как конпелируют минимальные экзешники?
Аноним 19/03/17 Вск 23:38:14  957167
>>957165
Под винду? Выкидываешь рантайм (или компилируешь с динамическим хотя бы), втыкаешь кастомную точку входа, мержишь секции, профит.
Dmitry 19/03/17 Вск 23:46:09  957175
>>957165
strip -s /usr/bin/*
Аноним 19/03/17 Вск 23:54:18  957181
>>957175
А теперь сделай hexdump и посмотри, сколько говна гцц оставил тебе на покушать.
Dmitry 19/03/17 Вск 23:57:35  957187
>>957144
EFL это либы для интерфейсов
Аноним 19/03/17 Вск 23:57:55  957188
>>957144
>ни то ни другое мне не показалось приятным
а мне наоборот понравился подход, когда компонент занимает все место в контейнере
Dmitry 20/03/17 Пнд 00:01:35  957189
>>957181
А теперь собери clangом или чем угодно другим, и покушай.
Аноним 20/03/17 Пнд 00:49:09  957224
exampleshit.png (39Кб, 906x303)
schizophrenia.png (12Кб, 640x400)
>>957144
Короче накидал пикрел, буду ориентироваться на него. Надеюсь будет удобно.
Аноним 20/03/17 Пнд 02:54:43  957272
Аноны, с какой платы начать изучать микроконтроллеры? Слышал, что советуют stm32l-discovery, но не слишком она старая? Все таки лет 7 уже прошло(или сколько там), или в мире микроконтроллеров не так все быстро меняется?
Аноним 20/03/17 Пнд 03:38:03  957281
Анон, есть один вопрос: Если бы тебе ресетнули все проффесиональные знания, и оставили лишь знания об источниках знаний, учебниках, курсах и подобном, какие учебники годнота, какие мусор. Какой список учебников по математике ты составил бы для средней школы? Просто я подозреваю, что я мыслю о математических процессах очень неэффективно и неправильно. Хочу поправить фундамент, так сказать. Особенно интересует есть ли годные англоязычные учебники по математике переведенные на русский?
Аноним 20/03/17 Пнд 03:59:59  957284
>>957281
матанопетух, уймись
Аноним 20/03/17 Пнд 12:55:18  957455
blob (531Кб, 803x688)
>>957281
>переведенные на русский
harharharharhar
Аноним 20/03/17 Пнд 13:28:31  957470
Аноны, ковыряясь в писечке обнаружил:
result->top = !!(table->frame & TABLE_FRAME_ABOVE);
зачем двойное отрицание, в чем тайный смысл?
Аноним 20/03/17 Пнд 13:36:25  957473
>>957470
Привести 0 или n к 0 или 1.

& - это побитовый оператор, смысл выражения в выделении одного или нескольких битов по маске, а потом к проверке, был ли хотя бы один из этих битов ненулевой. Более традиционная форма:
(value & FLAGS) != 0 (проверить, установлены или нет один или несколько битов FLAGS) или (value & FLAGS) == FLAGS (когда нужно убедиться, что все биты FLAGS были установлены).
Аноним 20/03/17 Пнд 13:40:59  957476
>>957473
Это понятно, но ведь достаточно записать как:
result->top = (table->frame & TABLE_FRAME_ABOVE);
Аноним 20/03/17 Пнд 13:49:52  957477
>>957476
Видимо, не понятно. Смотри, пусть:
table->frame = 0x5023;
#define TABLE_FRAME_ABOVE 0x1000
тогда table->frame & TABLE_FRAME_ABOVE выдаст 0x1000, а !!0x1000 выдаст 1. Если бы не было !!, мы бы присвоили в result->top 0 или 0x1000, а с !! присваиваем или 0, или 1. Когда у тебя int предназначенный для хранения bool, очень удобно, когда там не лежат странные ненулевые значения. В С99 появился bool, он при присваивании к нему автоматически преобразует значение к 0 или 1, а тут, видимо, старый код или разработчики по какой-то причине не хотели настоящий bool.
Аноним 20/03/17 Пнд 13:57:52  957482
>>957477
да, верно код старый. все понятно, скорее там бул в структуре размером с байта и это позволяет избежать переполнения. хитро сука, не то что нынешнее племя.
Аноним 20/03/17 Пнд 14:02:07  957484
>>957482
Почему хитро-то? (n & mask) != 0 - вообще идиома, а !! любят в JS.
Аноним 20/03/17 Пнд 14:07:35  957486
>>957484
двойное отрицание для кастинга мне еще не встречалось, возьму на заметку.
Аноним 20/03/17 Пнд 14:09:31  957489
з.ы. я вот так обычно >>957476
Аноним 20/03/17 Пнд 14:41:21  957504
>>957272
>не слишком она старая
заебись же для вкатывания, как минимум можно много инфы нарыть и готовых примеров.

Алсо некоторые диды до сих пор на 8051 быдлокодят в радаче даже тред есть, да и на вакансии натыкался, где требовался опыт ковыряния в этом говне динозавров
Аноним 20/03/17 Пнд 14:45:41  957509
>>957477
>автоматически преобразует значение к 0 или 1
Почему, кстати, 1, а не все единицы, так же удобнее?
Аноним 20/03/17 Пнд 14:50:10  957513
>>957509
Потому что сделать n * bool иногда хочется, а все единицы позволяют только для branchless conditional assignment делать, когда битность совпадает. В общем реже оно нужно и ненадежно.
Аноним 20/03/17 Пнд 14:50:56  957514
>>957272
Нахуй тебе дискавери. Возьми аналог за 100 рублей с али, достаточно, чтобы начать вкатываться.
Аноним 20/03/17 Пнд 14:53:28  957517
>>957513
>сделать n * bool иногда хочется
Ну так можно n & bool сделать.
Аноним 20/03/17 Пнд 15:01:22  957521
>>957517
Можно, но я имел в виду неявные умножения/сдвиги в коде типа const char *something[] = { "foo", "bar" }; puts(something[some_bool]);
Аноним 20/03/17 Пнд 15:17:02  957532
Посоветуйте книг по архитектуре процессора(Таненбаума уже почитал). И вообще, в каком направлении развиваться(стоит ли, например, ебаться с ардуионо или другими железками), чтобы взяли, скажем в интел/амуде/гнусмас, и в будущем заниматься разработкой архитектуры для новых процессоров(ну или чем-то таким, связанным с процессорами - мб эмуляция/виртуализация). Щас студентота, неплохо знаю асссемблер и си(++), но опыта с микроконтроллерами не было
Аноним 20/03/17 Пнд 15:30:12  957542
>>957532
Очевидные Хэррисы про железо (ISBN 978-0-12-394424-5) и Хеннесси/Паттерсон про высокий уровень и ISA (ISBN 978-0-12-383872-8). Начинать с последней, читать обе.
Аноним 20/03/17 Пнд 15:31:37  957543
>>957532
Алсо, у меня есть вот такой случайный набор букв и цифр, он подустарел, но может чего найдешь еще там: 8E2AD03BC44EBBA5DBCFC7ADBB1779BC53644166
Аноним 20/03/17 Пнд 15:39:32  957546
>>957532
>чтобы взяли, скажем в интел/амуде/гнусмас, и в будущем заниматься разработкой архитектуры для новых процессоров
уф, так и чувствую твое разочарование лет через десять :D
Аноним 20/03/17 Пнд 15:55:47  957556
>>957281
http://4chan-science.wikia.com/wiki/Mathematics
http://4chan-science.wikia.com/wiki/Math_Textbook_Recommendations
В этом списке есть книги, которые сначала были написаны на русском, а потом были переведены на английский. Так что некоторые книги можно и на русском прочитать, но большинство годной литературы пишется на английском и не переводится на русский.
Аноним 20/03/17 Пнд 16:07:21  957564
>>957546
Чому так?
Dmitry 20/03/17 Пнд 17:10:12  957598
>>957532
Что сейчас не хватает процессорам так это инструкций и гибридности, для определенной задачи больше подходит определенная архитектура.
Не хватает аппаратной реализации строк, массивов, инкрементов, корней/степеней, поддержки разных интеджеров нативно без переобразований.
Иди в IBM.
Аноним 20/03/17 Пнд 17:15:25  957600
>>956742
>X
устаревшее говно, сейчас wayland protocol.
Dmitry 20/03/17 Пнд 17:31:41  957605
>>946603 (OP)
А можно ли среагировать на событие не проверяя состояния в цикле?
Сколько ресурсов жрет такой цикл и как минимизировать последствия такого костыля?
USB насколько знаю вообще в это не может, ведь это интерфейс для передачи данных а не сигналов, но если бы производители плат покаялись и одумались сделав современную замену ps/2 то как в коде обрабатывалось бы нажатие?
Вообще и на низком уровне все на костылях, идет исполнение цикла, если что-то сделал то создается прерывание и обрабатывается.
Как учитывая все это потребление процессора 1-2% в простое?
Аноним 20/03/17 Пнд 17:49:28  957620
>>957605
https://en.wikipedia.org/wiki/Interrupt
Аноним 20/03/17 Пнд 17:56:33  957626
>>957600
нужно сидеть в консоли под фреймбуфером
Аноним 20/03/17 Пнд 18:10:04  957642
>>957626
Почему же? Вот уже в 25 федоре вейланд в гноме по дефолту стоит.
Аноним 20/03/17 Пнд 18:14:09  957644
>>957642
а зачем тебе графические клиент-серверные архитектуры типа вейланда или иксов когда ты сидишь на собственном компе? вот когда понадобится запускать графическую прогу на другом конце шара и отрисовывать ее у себя тогда и пользуй
Аноним 20/03/17 Пнд 18:15:31  957646
>>957644
А какие есть альтернативы?
Аноним 20/03/17 Пнд 19:01:57  957678
>>957646
фреймбуфер (ладно, шутка)
Аноним 20/03/17 Пнд 19:43:20  957721
Поясните как использовать тулсет Clang/C2 в 2017 студии
Аноним 20/03/17 Пнд 20:25:23  957775
clang-c2-1.png (32Кб, 532x298)
clang-c2-2.png (48Кб, 850x601)
>>957598
Поставить галочку в инсталляторе, а потом включить в свойствах проекта для нужной билд-конфигурации или для всех.
Аноним 20/03/17 Пнд 20:25:54  957776
>>957721
>>957775
Промахнулся.

Аноним 20/03/17 Пнд 21:17:19  957814
wayland-screens[...].png (157Кб, 1920x1080)
>>957626
Wayland тоже норм.
Аноним 20/03/17 Пнд 22:08:36  957850
>>957814
Бля, собери мне ядро!
Аноним 20/03/17 Пнд 22:15:01  957859
>>957850
Какое железо?
Аноним 20/03/17 Пнд 22:36:36  957872
>>957814
А как ты на wayland дошел? Что ставил?
Аноним 20/03/17 Пнд 22:38:51  957875
>>957872
weston
Вообще на Velox хочу перекатится, пока руки не доходят.
Аноним 20/03/17 Пнд 22:55:24  957890
>>957620
Но USB то опрашиваются, а не генерируют прерывания, насколько я знаю.
Dmitry 20/03/17 Пнд 22:59:37  957894
>>957890
Конечно опрашиваются, оно же само по себе сигнал не пошлет
Аноним 20/03/17 Пнд 23:00:32  957896
>>956742
>Тут есть даже я, разобравший Иксы и Presentation Manager и заново их собравший
Сложно ли проксировать иксы в виндовой гуй? Все существующие подделки иксов под венду рисуют всё через свои костыли, и не вписываются в стандартный интерфейс.
Аноним 20/03/17 Пнд 23:06:39  957899
>>957896
Есть qt, gtk, и еще какие=то фреймворки.
Аноним 20/03/17 Пнд 23:54:38  957926
пасха.PNG (26Кб, 425x426)
Хелуворд по-православному.
Аноним 21/03/17 Втр 00:02:35  957936
14891541598320.jpg (76Кб, 880x400)
Где можно выучить С, чтоб с задачками, а за решение ачивки и прочие звездочки?
Аноним 21/03/17 Втр 00:02:47  957937
>>957926
Дай переменным нормальные имена, нехристь!
Аноним 21/03/17 Втр 00:05:20  957938
jpg148.jpg (252Кб, 999x667)
>>957926
>по-православному
Пасха Христова определяется очень просто и всегда одинаково:

После весеннего равноденствия (20 марта) смотрим когда ближайшее полнолуние (11 апреля) и после него ближайшее воскресенье (16 апреля) и есть день Пасхи Христовой. Но если на этот день попадает празднование жидовского песаха то празднование Светлой Христовой Пасхи переносится на следующее воскресенье. Чтобы не праздновать Восресение Распятого одновременно с распинавшими. В этом году песах в синагоге сатаны празднуется с 11 по 17 апреля. Таким образом день Пасхи Христовой переносится на неделю. День ближайшей Пасхи - 23 апреля.

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

Но главное не наши рассуждения в данном случае. Главное то, что так установлено отцами - одновременно с жидовским песахом Пасха Христова не празднуется и точка.

Итак, ближайшая Пасха 23 апреля. Начало Великого поста соответсвенно выпадает на 6 марта.
Аноним 21/03/17 Втр 00:34:43  957955
>>957938
Не хочется добавлять в православный алгоритм расчет богомерзкого песаха. Герман Львович, не по божески это.
Аноним 21/03/17 Втр 17:00:25  958292
>>957875
В голом вестоне этого всего нет.
Dmitry 21/03/17 Втр 17:40:12  958320
Чего не хватает в C?
1. Concurrency. Потому как паралелизм дораха обходится, иногда настолько что однопоточное решение быстрее, в то время как в Go не юзаются потоки операционной системы, избегается оверхед.
Строки кажется и не нужны.
2. Templates говорят позволяет добится большей оптимизации.
Аноним 21/03/17 Втр 17:43:00  958321
>>958320
паралелизм ненужен как и шаблоны
Dmitry 21/03/17 Втр 17:46:57  958324
>>958292
Чего нет?
Если ты о браузерах и файломенеджерах, vlc, mpv. То этого и не должно быть, он может и тебе не нужно.
Отдельно ставь.
Мозила не может в вейланд.
Ozone Chromium может, webkit (epiphany, midori) может.
Почти вся Qt5 хуйня работает.
GTK3 тоже должно работать, не проверял пока. Я имею в виду приложения в которых не сказано ничего о поддержке вейланда скорее будут работать чем нет.
Dmitry 21/03/17 Втр 17:49:21  958328
>>958321
Конкуренци это не параллелизм. Паралелизм это когда потоки создаются, что не обезательно для конкуренци.
Шаблоны чем плохи? Что лучше?
Dmitry 21/03/17 Втр 17:50:58  958330
>>958321
И как это не нужен? Скоро в смартфонах по 32 ядра будет на десктопах 16 потоков норма уже.
Аноним 21/03/17 Втр 18:00:19  958340
>>958330
хипстеры и это засрут. не каждый алгоритм можно рспаралелить, а запуск процессов есть в любой ос и да, потоки тоже нинужны.
>>958328
тем, что шаблоны обобщают, а это всегда хуже конкретики.
Аноним 21/03/17 Втр 18:55:31  958376
>>958340
Ну насчет шаблонов он частично прав. Когда реализуешь какую-нибудь коллекцию на Си, приходится жертвовать либо производительностью, либо проверкой типов, либо копипастить код. В такие моменты очень хочется шаблоны. Хотя я бы предпочел явную кодогенерацию на этапе компиляции, а не крестовую магию.
Dmitry 21/03/17 Втр 19:57:19  958451
>>958376
>кодогенерацию
Ну а компилятор разве так не делает?
Аноним 21/03/17 Втр 21:17:03  958525
>>958376
Интересно, если ли для Си какие-нибудь препроцессоры уровня Nemerle, чтобы обрабатывать AST? Такая штука была бы намного удобнее крестовых шаблонов.
Аноним 21/03/17 Втр 21:21:07  958528
>>958320
Мне лично только лямбд не хватает, все остальное норм. Concurrency легко эмулировать сопрограммами (setjmp/longjmp), только задачи нужно переключать вручную.
Аноним 21/03/17 Втр 21:51:47  958552
>>957899
Я про родные люнупс аппликухи. В смысле запускаемые под LXSS.
Аноним 21/03/17 Втр 22:15:39  958565
media-cache-ak0[...].jpg (60Кб, 500x718)
Аноны помогите кто чем может.Задали написать простой 2D шутер, вид сверху на С.Я вообще не епу как это делать читаю ,Прату, вроде решаю простые задачки, но как сделать игру хз? В инете есть только змейка.Покидайте гайдов или примеров каких с комментами (рус\англ) плиз.Хеелп
Dmitry 21/03/17 Втр 23:53:07  958617
>>958565
SDL
DL
L
Аноним 21/03/17 Втр 23:56:53  958622
>>958617
У местных даунов с ней какие-то проблемы. То ли хэдеры с либами не могут добавить, то ли путают 32-битные и 64-битные версии.
Хз, у меня проги на SDL компилились с первого раза и на винде, и в линуксе.
Аноним 22/03/17 Срд 00:12:28  958627
>>946603 (OP)
Есть два файла: 1.txt и 2.txt
Как мне проверить каждую строку первого файла с каждой стройок второго файла и при совпадении сделать XYZ? Строка номер 1 файла один со строкой 1 2 3 4 5 6....n до конца файла 2. Потом строка номер 2 файла 1 со строкой 1 2 3 4 5 6....n до конца файла 2?


Я нашелнабросал такое - но такой алгоритм проверяет первую строку одного файла с первой строкой другого, вторую строку со второй и тд.

Если есть исходник такой хуйни - буду рад. В гугле - хуйня подобная моей.
http://pastebin.com/bvDd1LLV
Аноним 22/03/17 Срд 00:21:06  958632
>>958627
У тебя явно какие-то проблемы с пониманием массивов символов - ты кормишь в fgets один символ массива, а не сам массив. Твоя программа самым простым способом решается так:
открыли файлы;
while (fgets(первый файл)) {
rewind(второй файл); // Перематываем на начало.
while (fgets(второй файл)) {
if (strcmp(строка1, строка2) == 0) {
зделоть;
}
}
}
закрыли файлы. Но это ебически неоптимальный способ (зато простой). По идее, стоит прочитать второй файл в память, и сравнивать строки уже с памятью, не перечитывая повторно. Но у понадобится узнать про маллок и указатели хотя бы, а у тебя проблемы даже с массивами.
Аноним 22/03/17 Срд 00:24:48  958639
>>958632
>маллок
ой нет, нахуй нахуй
Вопросы оптимальностей и прочих оптимизаций неактуальны.
Спасибо большое, я попробую переписать это в код и надеюсь заработает :3
Аноним 22/03/17 Срд 00:25:35  958641
>>958632
Если файл 8 гигов то наверно лучше неоптимальный и простой алгоритм юзать?
По моему убеждению хуйня все это, все хуйня.
Бешешь sha256sum обеих файлов и сравниваешь, вуаля!
Аноним 22/03/17 Срд 00:28:11  958645
>>958641
https://en.wikipedia.org/wiki/SHA-1
Designers: National Security Agency
Вот теперь все ясно.
Аноним 22/03/17 Срд 00:29:39  958646
>>958632
> кормишь в fgets один символ массива, а не сам массив

А как правильно?
fgets(slovovmassive[], ?, ?);

Аноним 22/03/17 Срд 00:32:11  958650
>>958632
Алсо - напишите за меня, плеас, за сто рублей на телефон :(
Аноним 22/03/17 Срд 00:35:13  958652
>>958646
>>958650
Я за тебя написал уже. Все, что тебе оставалось:
char stroka1[1024]; // и stroka2 аналогично
и
fgets(stroka1, sizeof(stroka1), file1); // и второй fgets аналогично
и
strcmp поправить. И погуглить, какой хедер подключить для strcmp.
Аноним 22/03/17 Срд 01:06:40  958679
>>958622
Норм либа, давно в вейланд могет.
Аноним 22/03/17 Срд 01:10:31  958682
while(fgets(file_1))
{
for (x=0; x < 5; x++) //
{
fgets(ch_1[x], sizeof(ch_1), file_1);

for (y=0; y < 5; y++)
{
fgets(ch_2[y], sizeof(ch_2), file_2);

if (ch_1[x]==ch_2[y])
printf("\sasai\n",stroka);
else
printf("ne sasai");
stroka++;

}

Не робит нихуя твое "пока"
Аноним 22/03/17 Срд 01:14:18  958686
>>958679
Да-да, основное предназначение SDL - как раз наименее безболезненно получать контекст опенгл и пользовательский ввод, не разбираясь, что там за очередное говно стоит у пользователя вместо гуя. Все остальные "фичи" этой либы - неюзабельные костыли.
Аноним 22/03/17 Срд 01:21:29  958692
>>958682
http://ideone.com/e5TtB4
Аноним 22/03/17 Срд 01:31:58  958700
>>958692
Ебануться, спасибо тебе, ты охуенен, благодаря таким как ты мы эволюционируем.

Не разобрался с файлами - мне указать вместо массивов два моих файла?
Аноним 22/03/17 Срд 01:36:08  958703
>>958686
Ну есть же и фичи какие-то.
У меня в supertux кстати опенгл не работает, а должен, но сдл работает.
>>958700
>Не разобрался с файлами - мне указать вместо массивов два моих файла?
Вместо имен файла кинешь туда argv[1] argv[2]
Аноним 22/03/17 Срд 01:42:30  958708
>>958703
Спасибо, разобрался, вбил имена файлов.
Господи, ты даже не представляешь, как ты мне помог, живи здорово и счастливо
Аноним 22/03/17 Срд 01:58:57  958716
>>958708
А теперь возьми исходники cmp.
Аноним 22/03/17 Срд 01:59:41  958718
>>958716
Что взять? Непонимат
Аноним 22/03/17 Срд 02:10:41  958725
>>958718
Проебался, тебе надо сравнить строки а не одинаковы ли файлы.
Аноним 22/03/17 Срд 02:46:50  958741
>>958725
Я понял, что нужно указать (?) файлы и потом в массивы грузить их содержимое -но нахуя, если и так все работает)))0000
Dmitry 22/03/17 Срд 02:51:38  958743
>>958741
Не понял что ты в виду имел.
laba1 file1 file2
так вызываешь свою программу.
Аноним 22/03/17 Срд 04:06:50  958757
>>958743
Ебать я дно. Я тебя понял, понял почему ты написал именно так. Пиздец я дно. Спасибо тебе большое, ты спас моё ёбааную задницу - я не знаю кто ты такой, но я желаю тебе заработать много денег и жить в счастьи и гармонии. СИ-воды самые лучше. Крестобляди соснули.
СПАСИБО!
Аноним 22/03/17 Срд 09:05:26  958807
Screenshot8.png (89Кб, 1287x714)
>>946603 (OP)
как называется среда разработки c в вижуал студио
Аноним 22/03/17 Срд 09:31:39  958813
я так и не понял где эта среда
Аноним 22/03/17 Срд 09:35:44  958818
>>958807
Ой блять, будто я знаю. install gentoo mingw
Аноним 22/03/17 Срд 09:41:15  958821
>>958818
>mingw
на английском
Аноним 22/03/17 Срд 09:42:32  958822
Выкиньте нахуй свою вижуалку, в сях она всё равно не нужна, а то потом приходится смотреть код долбоёбов, которые свежие стандарты не знают.
Аноним 22/03/17 Срд 09:51:01  958825
>>958821
Даже у меня в школе был mingw. На английском, блядь, угу. Прекрати ныть. Ныть хорошо, но не без толку же.
Заодно разберёшься с make и потеряешь рассудок\анальную девственность в таком особом обряде инициации.
Аноним 22/03/17 Срд 09:51:39  958826
Screenshot10.png (49Кб, 1380x727)
Screenshot9.png (63Кб, 1386x744)
где ставить галочки
Аноним 22/03/17 Срд 09:58:33  958833
или не надо
Аноним 22/03/17 Срд 10:01:44  958834
>>958826
Метапакеты из basic setup ставь. msys, mingw-base и gcc-g++
Аноним 22/03/17 Срд 10:05:23  958835
Screenshot11.png (185Кб, 1426x342)
все так
сори если достал
Аноним 22/03/17 Срд 10:07:01  958837
>>958835
Я бы тебя не нанял.
Аноним 22/03/17 Срд 10:07:53  958838
что дальше
Аноним 22/03/17 Срд 10:09:24  958839
>>958838
Сфотографируйся с флагом в заднице.
Аноним 22/03/17 Срд 10:10:08  958841
>>958839
не заинтерисован
Аноним 22/03/17 Срд 10:10:36  958842
>>958841
Ну хотя бы хуй себе на лбу нарисуй.
Аноним 22/03/17 Срд 10:14:48  958846
>>958842
не интересно
Аноним 22/03/17 Срд 10:16:07  958847
>>958846
Ну и пошёл нахуй тогда, болезный. Пиздец, компилятор поставить не в состоянии.
Аноним 22/03/17 Срд 10:17:09  958848
я должен каждый раз открывать cmd чтобы запустить компиляцию ну нахуй
Аноним 22/03/17 Срд 10:19:29  958850
>>958838
Дрочи, компилируй, дрочи, компилируй! Запускай программы! Мусори в пайпы! Открывай сокеты! Сравнивай строки! Вычисляй фибоначчи!
Я не знаю, придумай чего-нибудь, короче. Потом будешь с резюме показывать. "Сматрите как я умею."
Аноним 22/03/17 Срд 10:23:05  958855
>>958850
зря ты ты так.3760 у нас в шараге даже вижуала нет кодим на крестах в какой то веб параше
cpp.sh
так что прошу понять и простить
Аноним 22/03/17 Срд 12:02:30  958897
>>958807
Visual C++.
Аноним 22/03/17 Срд 12:04:29  958899
>>958834
> msys
Посоны берут MSYS2, там pacman, понятный любому арчешкольнику.
Аноним 22/03/17 Срд 12:11:13  958901
>>958850
Если ты еще не понял то я хочю вкатится ,а этот дрочь на уровне красноглазия мне еще рано
Я только учюсь
Аноним 22/03/17 Срд 12:15:18  958903
Поставил LLVM compiler не понял как он работает удалил
Осталась папка bin ,которая неудаляется потому что она под админом
Качал с офф сайта
Аноним 22/03/17 Срд 12:20:26  958905
>>958903
Анон, выброси компьютер и иди работать в KFC. Программирование - это не твоё.
Аноним 22/03/17 Срд 13:18:21  958927
Подскажите алгоритм всех перестановок позиций из числа не полного списка
Пример 3 из 3, это обычные 3! вариантов
Но может быть и 2 из 3:
1 2; 2 1
2 3; 3 2
3 1; 1 3
и.т.д.
Нужна генерация мыпы на различные варианты перестановок вплоть до 10 из 20. Чтобы не генерить перестановки при каждом запросе, а просто искать в мапе индекс начало искомого запроса и выдавать под список


Аноним 22/03/17 Срд 14:33:36  958974
>>958905
ненужны нам в кфс такие долбоебы
Аноним 22/03/17 Срд 14:49:13  958983
>>958855

Поставь Qt 5.6.2 для MinGW, там внутри MinGW и Qt Creator - среда разработки.
Аноним 22/03/17 Срд 14:55:19  958987
>>958927
> просто искать в мапе индекс начало искомого запроса и выдавать под список

что ты пишешь блядь
Аноним 22/03/17 Срд 15:36:44  959006
Поясните пожалуйста про такую запись. (void*)&smth. Я правильно понимаю что мы такой записью приводим указатель на smth к указателю на войд?
Аноним 22/03/17 Срд 15:39:32  959007
>>958987
Короче нужно получить массив перестановок для всех вариантов
int map[N][20]:
{{ 1,0,0....,0},
{ 2,,0,0....,0}... { 20,0,0....,0},
{ 1,2,0,...,0}, { 2,1,0,...,0},
{ 1,3,0,...,0}, { 3,1,0,...,0},
....
{ 19,20,0,...,0}, { 20,19,0,...,0},
{ 1,2,3,...,0}, { 1,3,2,...,0}, { 2,1,3,...,0},...,{ 3,2,1,...,0},
{ 1,2,4,...,0}, { 1,4,2,...,0}, { 2,1,4,...,0},...,{ 4,2,1,...,0},
...
{ 18,19,20,...,0}, {18,20,19,...,0}, { 19,18,20,...,0},...,{ 20,19,18,...,0}
....
..
{ 1,2,3,...,20},....{ 20,19,18,...,1}}
Аноним 22/03/17 Срд 15:46:32  959013
>>959006
Да, был: Type smth
Получили его указатель Type p= &smth
И преобразовали его к в void: void
pp = (void*)p
Аноним 22/03/17 Срд 15:47:45  959014
>>959013
Макаба звёздочки в разметку конвертит
Аноним 22/03/17 Срд 15:51:10  959015
Screenshot12.png (82Кб, 994x698)
>>958897
тут 1 кресты
Аноним 22/03/17 Срд 16:07:32  959020
>>959015
Создаешь пустой проект win32 и в свойствах проекта меняешь как написано тут >>957775
Затем добавляешь в проект исходный файл с расширением .c и будет тебе С11
Аноним 22/03/17 Срд 16:09:41  959022
>>959006
Большое спасибо!
Аноним 22/03/17 Срд 16:10:24  959023
>>958821
А ты думаешь, что существуют компиляторы на руснявом?
Аноним 22/03/17 Срд 16:11:09  959025
>>958848
Так ты ее не закрывай, дебил
Аноним 22/03/17 Срд 16:13:22  959027
>>958822
Clang/C2
?
Аноним 22/03/17 Срд 17:03:15  959046
cOAAzA6Kq4Y.jpg (47Кб, 604x489)
>>958822
>свежие стандарты
Аноним 22/03/17 Срд 17:05:20  959048
>>958320
>Dmitry
>Dmitry
>паралелизм

>позволяет добится
>тся
Аноним 22/03/17 Срд 17:11:39  959053
>>959020
Выставлять шланг не обязательно, по большей части студия и своим собственным cl код с C11 компилирует нормально.
Аноним 22/03/17 Срд 17:20:21  959058
>>959020
>и будет тебе С11

Хуй у него за щекой будет, а не C11. В Студии до сих пор только C90.
Аноним 22/03/17 Срд 17:31:38  959065
народ что вы думаете об этом
Аноним 22/03/17 Срд 17:32:32  959067
https://ru.wikipedia.org/wiki/Eclipse_(%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8)
Аноним 22/03/17 Срд 17:33:24  959068
>>959058
У тебя устаревшие сведения. C99 полностью (кроме мелких проблем с либами) и всё нужное из C11 есть по дефолту. Полная поддержка при установке фронтенда от clang.
Аноним 22/03/17 Срд 17:58:25  959089
>>959053
Недавно пытался скомпилировать с _Generic, cl послал меня нахуй, а clang скомпилировал нормально
Аноним 22/03/17 Срд 18:03:45  959093
>>959089
И часто ты компилируешь код с _Generic? Оно плохо определено в стандарте и практически неюзабельно на текущий момент. Возможно, в С21 поправят, уточнят, тогда можно будет начинать использовать.
Аноним 22/03/17 Срд 18:29:40  959113
Screenshot13.png (434Кб, 1464x939)
продвижение есть
Аноним 22/03/17 Срд 18:32:38  959116
>>959113
сменил но все равно тоже самое
Аноним 22/03/17 Срд 18:39:24  959117
Screenshot14.png (26Кб, 1151x197)
Screenshot15.png (28Кб, 619x481)
прошу простить я нубас
Аноним 22/03/17 Срд 18:43:22  959120
>>959117
Отсутствие символов для системных либ - это нормально, это не ошибка. Если очень хочешь их (вот только нахуя они нубу?) - можешь погуглить "configure symbol source".
Аноним 22/03/17 Срд 19:17:41  959132
>>959093
какой 21? Сам же прекрасно понимаешь, что если прошлые стандарты называются 88, 99, 11, то следующий-то по аналогии должен состоять из двух одинаковых цифр, так что следующий стандарт по определению обязан быть 22.
Аноним 22/03/17 Срд 19:38:10  959155
>>959068
А вот мне нравится 2010 студия. Точнее, всё что выше, не ставится на XP.
Аноним 22/03/17 Срд 19:39:14  959159
>>959132
А про 14 и будущий 17 вам не доложили?
Аноним 22/03/17 Срд 20:18:10  959203
>>959132

C90 блядь.

>>959068

Вот в этом-то и дело. Написать портабл-код и использовать портабл код в студии с гарантией отсутствия пердолинга не получится, у них в макро заявлена поддержка лишь C++98 (про С не узнавал).

На стандарты в МС болт клали.
Аноним 22/03/17 Срд 20:49:25  959223
>>959132
Стандарты обзываются по году выпуска, следующий выпуск стандарта намечен ориентировочно на 2021.

>>959203
> использовать портабл код в студии с гарантией отсутствия пердолинга не получится
У меня от тебя _GNU_SOURCE. Не считаю пердолингом создание пары дефайнов под компилятор. Никакого портабл кода все равно не существует, системно-зависимые вещи приходится писать и #ifdef-ать для любой программы сложнее хелловорлда.

> у них в макро заявлена поддержка лишь C++98
По факту у них почти полная поддержка C++14.
Аноним 23/03/17 Чтв 11:46:38  959482
1.png (23Кб, 817x663)
222.png (24Кб, 670x255)
>>946603 (OP)
Сап, аноны. Для сортировки разного количества чисел приходиться каждый раз изменять код. Как можно задать
n чисел в файле? Т.е. чтобы код сосчитал все цифры в файле и задал его как n-чисел, дальше сам разберусь.
Аноним 23/03/17 Чтв 11:50:56  959484
>>959482
Но ведь у тебя код и так считает числа. В 17 строке после цикла k = количество чисел + 2 (вроде бы). Добавь обработку ошибок fscanf в строке 16, и будет точно.
Аноним 23/03/17 Чтв 11:51:21  959486
>>959482
Ну так передавай первым аргументом в функцию длину массива. Ну или еще есть variadic >>959482
arguments
Аноним 23/03/17 Чтв 11:57:19  959489
>>959484
>>959486
А я том, что если в файле будет 51 число, то программа работать не будет, и мне придется менять, задаваемые размеры массива и кол-во вызова функции на 51, как избежать этого?
Аноним 23/03/17 Чтв 12:01:29  959491
>>959489
Сделай массивы 10000 элементов (по условию) длиной. Иначе тебе придется городить динамическое выделение памяти через malloc (выделяешь 100 элементов, если закончились - делаешь realloc, добавляя еще столько же и т. д.).
Аноним 23/03/17 Чтв 12:17:59  959498
1.png (26Кб, 1350x494)
>>959491
Спасибо, анон. А еще микровопрос, разве консоль имеет ограничение на кол-во строк? А то из 1000 только 295 чисел пишет в файле все нормально, можно ли как-то продолжить запись во второй,третий,... ряд?
Аноним 23/03/17 Чтв 12:38:12  959505
>>959489
Так динамически выделяй память, в чем проблема то?
Аноним 23/03/17 Чтв 12:40:46  959506
>>959505
Я это еще не изучал, да уже и без динамического выделения памяти все получилось.
Аноним 23/03/17 Чтв 12:45:34  959509
>>959498
Не помню, как в десяточке. Попробуй кликнуть правой кнопкой по заголовку консоли и поискать там параметры. Среди прочего там будет размер буфера экрана.

> можно ли как-то продолжить запись во второй,третий,... ряд
Нет. Консоль, в простейшем случае (когда ты работаешь с ней через printf, а не в виде окна с символами) - это печатная машинка. Можно вернуться к началу текущей строки (\r), но к предыдущей строке вернуться нельзя никак. Впрочем, ты можешь выводить числа горизонтально - просто убери \n из printf.
Dmitry 23/03/17 Чтв 12:53:28  959513
>>959489
Перелавай массив по указателю бляха.
Аноним 23/03/17 Чтв 15:42:15  959579
Анон помоги.
http://pastebin.com/MMS3tSLF
Первая строка содержит целое число k количество конечных автоматов. Следующие k строк содержат по два целых числа
ni и mi число состояний и переходов i-го автомата.
Выход должен состоять из k строк. На i-й строке выходного файла выведите одно число – нетривиальность i-го автомата.
Сделал так как смог. Но хотелось бы сначало ввести кол-во строк потом числа, а только потом конечные результаты. Не пойму как запихнуть в цикл.
Аноним 23/03/17 Чтв 16:47:11  959618
Возник вопрос. Имеется динамический массив структур. Причем растет массив через realloc путем добавления 1 элемента. Т.е. сначала просто у меня структура, потом массив из двух, вжух теперь из 3 и поехало.Структура в своем составе имеет интовый массив [32]. Так вышло что по новому заданию массив в структуре может быть 32, 64,128, 150. Вижу 2 решения задать в структуре объединение с 4 массивами и выбирать потом тот размер который нужен (sizeof к структуре всегда будет давать 1 размер). Но загорелась жопа зачем то усложнить и сделать гибкий массив. Но помню читал, что массив из структур в составе которых гибкий массив не есть гуд. Но сделал черновой вариант и все работало. Так как лучше поступить. Через юнион конечно надежнее, но ломает сделать с гибким массивом
Аноним 23/03/17 Чтв 16:58:13  959623
>>959618
Не усложняй себе жизнь, гибкие массивы норм (мы ведь про Type elements[]; последним элементом структуры, правда?). А вот делать realloc() на один элемент больше - избыточно, лучше выбрать больший шаг хотя в одном из прошлых тредов мы выяснили, что как минимум в линуксе можно и +1 делать, не теряя в производительности.
Аноним 23/03/17 Чтв 17:07:54  959626
>>959623
Да, про него. Ты прав, реально сейчас наделаю дел, а потом переделывать буду 10 раз. То что добавляю по одному тут опять же требование. Спасибо!
**ПЕРЕКАТ** Аноним # OP  23/03/17 Чтв 17:41:31  959644
>>959643 (OP)
>>959643 (OP)
>>959643 (OP)
>>959643 (OP)

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 500 | 60 | 163
Назад Вверх Каталог Обновить

Топ тредов
Избранное