Двач.hk не отвечает.
Вы видите копию треда, сохраненную 25 марта 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C Programming Language.png78 Кб, 792x1023
C Programming Language #52 /clang/ # OP 1570501 В конец треда | Веб
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

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

Что читать:

- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download
- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.
- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/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 (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2385.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. Древний, но все еще актуален.

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? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013) - почитать, вкатиться в указатели.

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. Koch@n "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://web.archive.org/web/20190213011655/homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

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

https://github.com/kozross/awesome-c

Онлайн-утилиты:

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.

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

- №49: http://arhivach.ng/thread/496205/
- №50: http://arhivach.ng/thread/502813/
- №51: http://arhivach.ng/thread/510484/ >>1540431 (OP)
2 1570699
Насрал в тред
3 1570963
GCC крашится при установке на win7 что делать? как жить?
4 1570990
>>70963
Что там крашится? Ты порт mingw ставишь? Или что?
image.png74 Кб, 973x626
5 1570997
Зацените говнокод.
https://pastebin.com/unMi2P6S
Результат работы - пикрил. Пыхопня в режиме fpm.
6 1571012
>>70997

Типа чтобы без перезапуска на лету менять вывод ошибок?
7 1571017
>>71012
Типа чтобы CGI/FPM пыхопня воспринимала хуиту типа
php_value "huipizda" "skovoroda" (ака директивы php.ini) прописанные в .htaccess и конфиги жопача.
Если нет mod_php, по умолчанию такие записи в конфигах будут просто выбивать 500 ошибку.
9 1571391
>>70990
А какой надо?
10 1571393
>>71391
Всё, поставилось. Только херь какая то, командная строка а где кодить то?
11 1571401
>>71393
Командная строка? Ну ты динозавр пиздец. Скачай себе терминал.
12 1571422
>>71393
В блокноте. Можешь в Notepad++, он круче. гыгы, привыкай, раз в прыщавое говно залез - твой выбор
13 1571424
>>71422
А если vs code?
14 1571428
>>71424
Ради бога, почему нет? Компилятору всё равно откуда берутся текстовые файлы с кодом, главное ему их подать в командной строке, чтобы скомпилил в рабочую программу.
15 1571453
>>71422
Пфф... ну ладно
16 1571496
>>71422
Импердолинг, для написания хелоуворлдов и прочих типичных лаб нужна студия на 20 гигов.
17 1571565
>>71496
Удобства всегда нужны, иначе не было бы шикарных отелей, все бы ночевали в клоповниках, всё равно недолго же.
18 1571613
>>71393
Скачай VIM, еблан, он на винду есть, и текстовый режим 720x400 поддерживает, и даже запоминает изменения с предыдущих запусков (что иногда напрягает, потому что иногда хочется смело зажать U и сделать как было, когда открыл), и результаты поиска подсвечивает (что тоже напрягает, убирается поиском ~). Но если сидишь на русской Windows 2000, то придется в панели управления менять язык неюникодовых программ на буржуйский, и тогда полетят все твои сейвы "C:\Documents and Settings\Анон\Мои документы\Игра для лоботомированных\savegame.japidoras". Делай выбор, Нео.
19 1571767
>>71613

>vim


Жжошь. Ему CodeLite бы освоить.
americanboy.mp414,7 Мб, mp4,
480x360, 4:30
20 1571823
Анон, который хотел сделать печаталку для игры, ты сделал? А то мне тут заявления присылают, что любая рандомная тня может так сделать)
21 1571909
>>71613
Насрал тебе в рот
22 1571922
>>71823
Вот так вот - нихуя вы не можете, а только пиздите. Вот так же моя проблема в сто тысяч тежялее вашей, а вы только пиздите - да ты просто сделай то, да ты просто сделай это, все не спят по трое суток и норм.
А мне ничего не надо, я просто хочу чтобы этот поганый участок земли снесло ядерным ветром.
Amnesia- A Machine For Pigs OST - Mandus.webm4,5 Мб, webm,
1280x720
23 1571935
Ебучие выживальщики
24 1571939
А!! Ещё и каргокультисты, а без того ведь в современном мире ну никак. Процессоры то работают только на английском языке.
25 1572062
>>71565
"Удобства" уровня использовать студию для написания хелоуворлда - это когда ты заказывал садового гномика, а тебе привозят во двор чугунную копию статуи свободы в полную величину, которая потом ещё и заваливается набок, как Пизданутская башня, ибо фундамент под неё нихуя не сделали.
26 1572321
>>72062
Дебил с дебильными аналогиями их жопы. Типичная красноглазая пердоля. Как можно программировать не владея логикой? Поэтому линуксы вечно такое говно.

Объяснения для дебила: Твоя аналогия никуда не годится, потому что студия обладает всеми теми же свойствами, что и блокнот, т.е. является его абсолютной функциональной копией. Наличие дополнительных свойств и возможностей не отрицают базовые, которые все те же самые.
sage 27 1572341
>>72321
Да, и при этом она весит не 100кг, как гномик, а 20 гиг, которые надо откуда-то высрать.
При этом места на нищесосоде у студодауна может и не быть.
28 1572351
захотел изучить С, в книге пример с хэло ворлд. Скачал ТСС, хуй знает как его вообще блять установить гугл нихуя не находить. скачать жирнее не могу, у меня всего 5гигов блять на месяц
29 1572370
>>72351
Not sure if trolling or just stupid.
Чем тебя не устроил досовский Borland TurboC, нищук из 2004 с жопарезом по трафику? Надо было обязательно лезть и качать tcc в исходниках? Ну малаца, переводи теперь их сам в машинные коды в блокноте - компилятора же у тебя нет.
30 1572380
>>72370

>Borland TurboC


я ебу что ли? в шапке написано, я там и выбирал
31 1572384
>>72351
Анус себе установи. Куда лезешь, ламер. Научись сначала пользоваться компьютером.
32 1572392
>>72351
>>72370
Как OpenWatcom пойдёт для хэлло вордов?
33 1572427
Поясните за отличия в объявлениях
extern char _binary_start[];
и
extern char _binary_start;

При попытке доступа, во втором случае софт сегфолтит. В первом - всё ок. Сами символы определяются в отдельном
.o файле, и затем прилинковываются к основному.
asdfsd.png10 Кб, 858x285
34 1572429
>>72427
Фикс
35 1572451
>>72392

>OpenWatcom


В этой теме крутой нубский дебагер. Так просто и удобно показано содержимое переменных в реальном времени.
36 1572460
>>72427
Потому что в первом случае ты копируешь объект, а во втором указатель. По объекту нельзя итерироваться (array[]++ тебя выходит).
37 1572472
>>72351
Pelles C весит 10 мегабайт.
38 1572945
Стоит с этого начинать?
39 1573003
>>72472
хороший илитам как обычно хуй установишь и буду сидеть как еблан искать туториалы в инете?
40 1573050
>>73003
Нахуя ты живешь вообще, говно? Можешь не отвечать.
41 1573059
>>72351
Бля, качни бинари, либу, распихай все попакам, вбей нужное в PATH и юзай в консолечке, чего тебе еще?
42 1573857
C top
43 1573862
>>73857
панчлойн
44 1574302
Почему происходят утечки памяти в программах на Си? Неужели так сложно написать аккуратно? Или же отследить утечки трудно?
45 1574347
>>74302

>Неужели так сложно написать аккуратно? Или же отследить утечки трудно?


Тупые школьники не умеют
46 1574462
>>74347
А если серьёзно?
47 1574524
>>74462
Если программист не совершает ошибок - необходимо проверить его пульс. Серьезней некуда.

>>74302

>Почему происходят утечки памяти в программах на Си?


Выделение памяти (чаще всего - malloc(), calloc()) без последующего освобождения. Учитывай, что в коде с большим количеством ветвлений отследить это глазами может быть сложно. К примеру:

int f() {
char* buf = malloc(255); //резервируем память
if(usebuf(buf)) {
free(buf);
return 1;
} else return 0; //утечка
}

>Неужели так сложно написать аккуратно?


Могут поджимать сроки, ты можешь плохо выспатся или банально забыть вызвать free() в одной из веток. От глупых ошибок никто не застрахован. Альтернатива - это резервировать память на стэке (через alloca() или локальные переменные), но его объем сильно ограничен, а при переполнении программа почти гарантированно свалится с SIGSEGV (когда при утечке на куче продолжит нормально работать, пока не сожрет всю память).

>Или же отследить утечки трудно?


Без использования специальных тулзов по типу memcheck - сложно. А их собственно до того момента, пока утечки не начинают быть катастрофического масштаба, тащат редко. Да и обнаружить утечки во всяких специфичных случаях даже с такими тулзами может быть проблемой, т.к. производительность во время их использования околонулевая, и прогонять полноценные тесты после каждого коммита может быть сложно. Другой вариант - статические анализаторы кода, но лицензии для энтерпрайза стоят сотни нефти, да и вообще вещь не слишком популярная.
48 1574526
>>74524
Понятно, спасибо. Не так уж и страшно выглядит.
49 1574530
>>74347
>>74302
борщехлебы-сеньоры итт
50 1574532
>>72351
и нахуя, есть gcc/clang
51 1574555
>>74302

Когда устал, когда только проснулся, когда уже вечером хочешь спать, когда не выспался и в обед начинает вырубать в сон - любую хуету можешь написать, любую утечку. И никто тебя домой поспать не отпустит. А если ещё дома проблемы и голова другим забита, а надо проект пилить? Ошибки не от того что программист тупой, а от внешних факторов.
52 1574559
>>74555
как заебали эти охуительные истории или тут вся борда вкатывальщиков ебанатов.

ты на живую пишешь, чтобы маллоки и фри хуй знает где пихать?
архитектуру не проектировали, требования не узнавали, сразу склр и начали код хуячить, да?
53 1574568
>>74302
Просто когда пишется тестовая версия программы, или какого-нибудь функционала, на освобождение памяти никто сильно внимания не обращает по очевидным причинам - программа в рантайме при тестировании долго не будет, а значит при завершении она освободится в любом случае. Так и забывают накачать код справедливыми free()ками
54 1574592
>>74568
Поэтому когда речь идет про утечку, обычно имеют ввиду программы которые работают в фоновом режиме сутками. Поэтому если программа сожрет память и обратно её не отдаст, через некоторое время у тебя RAM не остается вообще.
55 1574593
>>74530
Да нет, я вкатывальщик. Ко мне эти титулы вообще относиться не будут, так как не для работы.
>>74568
А я думал, что это какая-то жутко неочевидная вещь. Я ведь сразу собираюсь всё это прописывать.
56 1574600
>>74593

>Я ведь сразу собираюсь всё это прописывать.


Освобождать память тоже надо аккуратно. Если освобождаешь, обратиться уже не сможешь. Так и может сегфолт выйти в какой-нибудь момент. Поэтому перед тем как пихать free(), подумай есть лии где-нибудь места в коде, которые по идее могут использовать выделенный участок памяти. Поэтому пользуйся комментариями -- оставляй заметки, что выделенная память должна быть освобождена если закончил с ней работать.
57 1574619
>>74559

> сразу склр и начали код хуячить, да?



Ну как бы да, я просто придумываю программу которую мне надо, сажусь и пишу её.

Ниче не течет, брат жив. В коде ниче сложнее if-else нет. Проги для мультимедии.

Проебаться могу только если затуплю где-то по какой-то причине, указанной в предыдущем посте.

Если чё-то не устраивает в работе программы, можно запустить профилирование и посмотреть чё как.

Самый знаменитый баг у меня так и был. По невнимательности 1000 и 1000000 доли секунды перепутал, а так как тестов я тоже не пишу баг жил долго, но потом он мне надоел, я его нашел и исправил.
58 1574624
>>74619

>В коде ниче сложнее if-else нет


Сложность си не в синтаксисе, а в том, что практически все надо писать вручную, и только после тысячной отладки это будет работать нормально. В основном происходит адская ебля с памятью, исправлением сегфолтов и прочей подобной хуйни.
59 1574677
>>74624

>0x000000C5


>SOOOQA

60 1575080
>>74624
Такое происходит когда ебланы используют вещи не по назначению. А конкретно, пишут сложные алгоритмы в низкоуровнемом си-стиле и велосипедят библиотечные фичи. Короче говоря, это любой узколобый приверженец одной тулзы, наподобие сишников, отрицающих плюсы в 2020 году.
61 1575088
Анон, на работе (обычный инженер-схемотехник) требуется освоить программирование микроконтроллеров, так как я там один из немногих вьючных мулов (да и на будущее не против, сам хочу). Но разница между "сам хочу" и "требуется освоить" во времени. Меня особо, конечно, никто не подгоняет, но все же. В общем, практически во всей литературе по МК, использующимся в фирме, требуется "базовое знание С". Я, собсна, наверное только синтаксис и знаю. Достаточно ли этого чтобы просто ЧИТАТЬ и ВНИКАТЬ (естественно я могу загуглить часть кода из книги, чтобы понять, для чего оно тут.) Просто пока я жду доставки отладочной платы все равно надо что-то поделать будет, может есть какой небольшой учебник, все равно надо будет потом овладевать в совершенстве.
62 1575096
>>75080

>отрицающих плюсы в 2020 году.


Какое отношение плюсы имеют к си? Да и, на секунду, в 2020? Совсем другой язык, нестаибильный с кучей перемешанного говна. Это как сравнивать пхп с плюсами.
63 1575101
>>75088
Блядь. Ты долбаеб? Я вообще не понимаю таких тупорылых уебанов, как ты. Сука. У тебя есть все: знания о МК, как работают схемы и тд. Язык программирования - это инструмент! Полно, блядь, инфы о том, как программировать МК, сука, но нет, я лучше напишу хуйню, которую даже не пытался вбить в поисковую строку. Иди на хуй. Просто пиздец. Ебучий инженер-схемотехник не может загуглить и освоить элементарную хуйню для своей задачи. Что ты, блядь, за инженер вообще такой? Я понимаю, если речь идет о каком-нибудь уебане, который из шахты вылез, услышав о 300к/нсек в IT и решивший вкатиться. Но, блядь! Эти вопросы задает не шахтер Василий, а человек, казалось бы, обладающий логическим мышлением и знаниями в СВОЕЙ технической специализации!
64 1575146
>>75101
Ну чо ты наехал то, желчный. Я же говорю, жду, пока мне привезут даром отладочную плату, а без неё я даже тамошний хелоуворлд не смогу осилить (помигать светодиодом). Вот я и хотел пустоту занять ковырянием в самом языке. Я помню, что когда ковырялся в чужом коде своего изделия, то у меня возникали некоторые вопросы, вроде "зачем ставить два раза указатели", но ответы быстро гуглились. Я не чувствую себя уверенным программистом, потому и спрашиваю. Я недельку проглядел функции, которые в описаны в библиотеке HAL, в принципе понял, что оттуда можно брать, потому больше там ковыряться не хочется. А от скуки порешать всякие тупые задачки я не особо против. Но нужно ли это?
65 1575151
>>75096

>Какое отношение плюсы имеют к си


Вот именно это отрицание.
66 1575154
>>75101
Это такая категория паразитов. Спецы ассказывать про себя слезливые истории, чтобы окружающие сочувствовали и кормили с ложечки. И так каждый раз. Лучше настрочить еще одну историю про себя бедненького в стену текста, чем вбить пару слов в гугл. Клиническое паразитическое социоблядство головного мозга.
67 1575185
>>75146

>Но нужно ли это?


Неа, и микроконтроллеров своя специфика, деревья ты на них вертеть не будешь, хэши гонять тоже, а вот порты дергать и байты гонять это да.
68 1575206
>>75080
Плюсы сложнее Си, как ни крути. Надо осваивать, всякое ООП осиливать. Сложна, короче. И форматированный ввод/вывод все равно подтягивать из Си, лол
image.png13 Кб, 521x239
69 1575223
>>70501 (OP)
Аноны вопрос по стилистике. Занимаюсь мелким фрилансом, поэтому варюсь в собственном котле и естественно стилистика "эволюционирует" отдельно от какого либо сообщества.

В последнее время начал злоупотреблять следующей хуйней.
Насколько заниматься подобным - хуево?
70 1575255
>>75223
Наглядно, но временная сложность вне зависимости от реализаций должна быть пиздец
157910707113139632.jpg94 Кб, 700x1051
71 1575262
>>75223
Заеьись, я тоже переменные все вначале объявляю. Только однотипные через запятую. Ну и переменные я слитно пишу, а нижнее подчеркивание только в имаенах подпрограмм. Ну и верхний регистр только для структур, дефайнов и констант.
72 1575289
>>75206
В С++20 завезут в STL импортозамещение.
73 1575291
>>75289
*про >форматированный ввод/вывод
74 1575406
>>75223

> Снейк кейс на сях


Ну ты и пидор. Зайди на гитхаб майкрософт и посмотри в каком стиле на сях пишут нормальные люди.
image.png25 Кб, 827x314
75 1575449
>>75406
Зашел посмотрел, пишут еще функции таким же образом.
Но я никогда не понимал подобной хуйни ибо все сливается.
Я функции кемлкейзом пишу, переменные снейкейзом. Охуенно же.

В чем смысл писать функции и переменные в одном стиле, если можно разными и станет читаймее?

>>75255

>Наглядно


Вот это главное, спасибо.
Я вообще предполагал и предполагаю, что это все должно оптимизироваться до обычного IF, а все промежуточные переменные сократяться. Нахуя тогда компилятор этот ебучий нужен?
76 1575525
>>75449
Что за макрос UNUSED? Что делает и как? Это какая-то своя реализация? Вроде, в языке такого нет.
77 1575526
>>75525
Это блядь гит майкрософта лол. Я откуда знаю.
78 1575530
>>75525
>>75526
Хз просто макрофункция, че ты от нее всполошился.
79 1575538
>>75530
Просто не видел такой и не могу даже представить что она делает, исходя из названия. А ты что, пишешь и не понимаешь что пишешь?
80 1575544
>>75538
Ты тралишь?
81 1575547
>>75525
Ничего не делает, просто убирает ругань компилятора на неиспользуемые параметры. Видишь же, что онм не использованы.
82 1575551
>>75544
Нет. Я у тебя спросил что делает этот макрос, ты ответил "хз". После чего я задал вопрос "пишешь и не понимаешь что пишешь?". В чем тут тралинг проявляется?
83 1575555
>>75547
А зачем тогда эти параметры вообще объявлены? Чтобы что?
84 1575561
>>75555
Значит надо. На будущее или еще зачем-то, только они знают зачем. В любом случае тебя не должно ебать пока не станешь работать в Майкрософт и писать этот код.
85 1575564
>>75551
Мне тыкнули в майкрософтовский код, мол бери стиль оттуда.
Я прикрепил скрин, на котором показан стиль майкрософтовского кода.
Ты вломился и начал распрашивать меня, че делает некая макрофункция, которая по хорошему может вообще что угодно делать.
Удивляешь почему я не знаю.
Почему то считаешь, что это я писал.
Не тралишь.
86 1575575
>>75564
Ты какой-то с отклонениями.
87 1575590
>>75146

>вроде "зачем ставить два раза указатели"


Ты даже тут вопрос неправильно сформулировал. Ты все еще не знаешь что такое указатель на указатель. А знаешь, что существует еще указатель на указатель на указатель и т.д и т.п? А про разницу константных указателей и указателей на константу ты вообще и не слыхал. Короче, иди макакизм учи.
88 1575607

>Мне тыкнули в майкрософтовский код, мол бери стиль оттуда.


Бля, и что в нем уникального? Писать условный оператор слитно с операторами? Ебать... Эти люди, которые говорят ориентироваться на чей-либо стиль сами понимают зачем это? Или им достаточно было знать ЧЕЙ это код?

@А НУ РАЗ МУКАСОФТ ТО КРУТО)))00))
89 1575609
>>75607
с операндами*
90 1575654
>>75146

>порешать всякие тупые задачки


Нахуй не нужны эти задачки. Лучше выбери RTOS для своей микрухи. Вызубри доки от корки до корки. И будешь писать как белый человек с нормальным распараллеливанием и менеджментом памяти. А не как холоп с проёбаной архитектурой на прерываниях и периферийных таймерах.
91 1575659
Сап
Если я скину изи задачу про разделяемую память и семафоры, то ее решит мне кто нибудь?)
92 1575673
>>75659
Решим, ясен хуй. Но вычислим по заданию.
Screenshot20200117-190452Office Mobile.jpg96 Кб, 1079x262
93 1575679
>>75673
Вычислите?
Ля тут самая большая проблема это часть с временем даже а не взаимодействие
94 1575680
>>75654

> Лучше выбери RTOS для своей микрухи.



смотришь на компилятор к своей микре, не умеющий в malloc
95 1575687
>>75679

>utmp.h


Потом просто вычитаешь из текущего времени время прошлого логина, если >= 20 минут - помечаешь.
96 1575699
>>75687
Спасибо
97 1575746
>>75687
Боже я все пытаюсь найти и понять как использовать этот файл
Я подключаю заголовок, он дает задает тип структуру, а дальше то что?
Стикер255 Кб, 399x453
99 1575765
>>75758

>linux

100 1575849
>>75765

>>linux


Настоящая система для настоящих разработчиков любого стэка. Также широко используется учеными.
101 1575853
>>75849
Жаль, что мой ноутбук недостоин этой великой системы, и она на нем работать не желает в любом блять виде.
Мимо
102 1575869
>>75758
насколько же я тупой
Я не могу разобраться, как с этим работать
я делаю setutent беру getutent ну и endutent
Мне ut_tv.tv_sec возвращает 50 лет
Что я делаю не так?
103 1575874
>>75853
Дай угадаю, асус?
104 1575884
>>75874
Мимо, Эйсер. В любом случае мобильный пень вместо процессора уже как бы намекает, что ничего путного все равно не выйдет.
105 1576169
Хочу написать простенький сетевой драйвер для линукса. Функционал не важен. Что-нибудь сложности хэлоуворда. В юсерспэйсе на си писал, а драйверы ещё не делал Подскажите с чего начать учить?
106 1576174
>>75449
Не туда смотришь. Здесь смотри. https://github.com/microsoft/Windows-driver-samples
107 1576178
>>76174
Ну там все пишут кемлкейзом, в чем смысл?
108 1576201
>>76174
Этим наверное платят за строчки кода.
IMG20200118175947426.jpg44 Кб, 1280x576
109 1576623
>>76174
Вот как раз к срачу с прошлого треда пример нормального стайла, где даже однострочное тело ифстейтмента оборачивается в скобки, благодаря чему код становится в тысячу раз читабельнее, чем без них. И напомню заодно, что люди, которые в жс/питон стайле однострочный иф стейтмент не оборачивают в скобки - это студенты и пидорасы.
110 1576789
>>76623
Скобкодебил, катись обратно в свой лисп текстики жрать. А си это ассемблер, в гем нет пидорских скобачек дрочить на них, только необходимые серьезным людям для серьезного дела.
111 1576827
>>76789

>гем


мнение латентного рубиста не интересно
112 1577034
>>76623

>пример нормального стайла,


>Имена макросов слиты в одну нечитабельную хуйню


Почему я должен доверять этому мнению?
113 1577235
>>77034
Видимо тут специализация на коллективную разработку. Скобки везде и на отдельных строчках делают удобным и безопасным добавление и удаление нового кода внутрь. А то, без скобок, добавлять их потом - реально боль в заднице.
114 1577245
Какие (современные) игры сделаны на С ?
115 1577260
Нубский вопрос.
У меня есть BITMAP картинка. Скриншот сделаный через win32 API.
Я хочу конвертировать это в png с помощью libpng.
Я не знаю какой указать bit depth параметр, но я посмотрел, размер данных 8294400 байта для картинки размером 1080 * 1920. Т.е. на один пиксель выходит 32 бита (видимо это потому-что я на 32-битной системе?).
Но libpng кажется 32 бита не поддерживает. В мануале в поддерживаемых значениях: 1, 2, 4, 8, 16
И код выдает ошибку, что неправильное значение у параметра bit depth.

Не понимаю как это сделать мне.
116 1577264
>>70501 (OP)
Когда то пару месяцев назад, спрашивал тут насчет подключения файлов и организации правильной структуры проекта.

Вообще сейчас возникла проблема.
Некоторые файлы сильно раздулись, хотелось бы вывести их static функции в отдельный файл, что бы улучшить читаемость.

Насколько хуево инклудить сишный файл с локальными функциями, напрямую в основной сишный файл?
Я не вижу иного пути, т.к. у меня уже некоторые файлы по 3 тысячи строк.
117 1577271
>>77260
Вроде разобрался. Там есть

>PNG files reduce possible bit depths to 1, 2, 4, 8, and 16. If your data is of another bit depth, you can write an sBIT chunk into the file so that decoders can recover the original data if desired.



Правда у меня все равно ничего не вышло. Черная картинка получилась, но тут уже вы не телепаты.
118 1577273
>>75884
Затоновае купил в кредит по акции в говнонс за 24999.
а мог бы взять старый макбук и в хуй не свистеть, благо человеческий юникс туда завезли из коробки
119 1577280
>>77260

>Т.е. на один пиксель выходит 32 бита (видимо это потому-что я на 32-битной системе?).


Нет, скорей всего, это потому, что на один пиксель приходится четыре канала ALPHA RED GREEN BLUE, каждый по 1 байту. Хотя BMP ебанутый формат. Нужно смотреть какие настройки были, когда делался скриншот. Там может быть без альфы или ещё какая-нибудь хуйня.

А bit_depth указывает глубину одного канала в битах. Значит у тебя нужно указывать 8.
120 1577284
>>77273
Шизло из школы 21, съеби уже, плease.
image.png184 Кб, 1920x1080
121 1577285
>>77280
Да, ты прав. Я менял настройки и натыкал, но все равно не правильно понял, спасибо.

Теперь мне наверное только поменять отсчет снизу наверх, вместо сверху вниз.
122 1577319
>>77284

>довену, купившему говно по цене нормального ноутбука, дискомфортно

123 1577381
>>77319
Расскажешь чем он отличается от некого "нормального" ноута?
124 1577411
>>77381
Атомоговно (переименованное в "типапеньтеум", потому что даже ебланы за 5+ лет кормления говноатомами, начали что-то подозревать). Неработающее в нормальных ОС видео как бонус.
125 1577412
>>77411
Ах, да, бонусом в атомовысерах идут невероятно мутные 1366x768 TN вместо экрана, корпус толщиной с твою мамашу и, отвратительный тачпад и крайне хуёвое общее качество материалов и сборки.
126 1577460
>>77411
Всю жизнь (разве за последние поколения не скажу) была отдельная серия мобильных процов. Ничего не знаю а младшие процы 12-14 годов вполне сносно себя вели на ССД.

>>77412

>мутные 1366x768


Необходимость FHD на 15 дюймах охуеть сомнительная.
Даже если так - это каприз, несколько лет назад выше FHD ничего и не было, а FHD было уже в ценовом сегменте за 50.
Сколько людей знаю - всем похуй всегда было на разрешение.

>отвратительный тачпад


Все тачпады отвратительные.

>качество сборки


Хуйня какая то снобская, типо если засунуть между булок и начать потирать под левой петлей скрипит? Да всем похуй на это, кроме пары тревожных ОКРшиков, на которых всем насрать.

>хуёвое качество материалов


Единственное что правда, но толку, сейчас во всем потреб сегменте так. Это и хуясусы и самсунги. И похуй.
На асус можно если разъебется корпус за 2к найти, а на сосунг или сони тебе это выйдет в десятки килорублей, если вообще найдешь.

Короче ты снобский дурной нерд, не понимающий, что кроме ТТХ есть гораздо более важные кач-ва.
127 1577469
>>77460
В маках уже 7 лет как 3к IPS в 15".

>все


Атомовыпердыш, плиз. Уже как минимум 10-12 лет везде (кроме говна за 25к) есть нормальные тачи.

>более важные качества, чем просто не быть говном


Ясно.
128 1577502
>>77273
Мимо. За 20 кусков налом, ультрабюджетно. Если накоплю полтинник - возьму на Али Хасси с более-менее нормальным охладом, 1050 и гиперпнем (который мощнее моего FX на станционаре) в сокете.
129 1577680
>>77460

>Необходимость FHD на 15 дюймах охуеть сомнительная.


Да, всего лишь позволяет открыть 2 окна рядом, не превращая буквы в трехпиксельную хуету отрицательным масштабированием.

>Все тачпады отвратительные.


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

>Хуйня какая-то снобская


Ага, год норм юзается, еще год - все хромает, а потом менять, и так по кругу. Конечно же ты не говноед.
мимо
130 1577702
Подскажите на чём можно кодить кроме визуал студио. Оно меня заебало, просит поставить интернет эксплорер 10, откуда я его высру?
131 1577725
>>77680

>не превращая буквы в трехпиксельную


Превращая их в издевательство над глазами. В своем уме такой текст мелкий читать?
Точно так же будешь на лазерную коррекцию тратиться через пять лет.

>Мышеблядь


Ноги не нужны.

>год норм юзается


Б\Ушный говноасер купленный в докризисные за пятнашку, с докупным за 1000р i7, 2012 года, вот до сих пор служит.
А ты продолжай строить свой манямирок и покупать оверпрайснутую статусную хуйню, придумывая различные оправдания.
132 1577749
>>77702
Студий десятки, выбор на любой вкус и конфиг.
133 1577798
>>77725

>издевательство над глазами


Мимо, я вообще ЭЛТ подключать люблю. Я просто одну из возможностей описал. Вообще, 1080p более адеватное разрешение, к которому и 720p лучше апскейлится.

>Ноги не нужны


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

>покупать оверпрайснутую хуйню


Опять мимо, но мой ideapad 510-15isk меня конкретно подзаёб своим всратым корпусом, охлаждением дующим из под петли по всему экрану, кулером, который иногда ловит что-то твердотельное принимается косплеить звук ГАЗ-2410, самопроизвольно высверливающимся крепежом и тем, что после недавней замены опять весь в трещинах, блядь, выдергивает нитки из моего свитера, когда руку убираю, фиолетовым пятном на экране, потому что климат влажный, и еще кое-какими радостями. Ты скажешь, это сугубо индивидуальная хуйня, а я отвечу, что это элементарное удешевление этапа производства, где вещь по идее должна доводиться до ума. Решительно не могу терпеть такое говноедство, готов перейти хоть на ThinkPad T43 и чувствовать себя успешным человеком. Благо, на замену 10-й винде и 18-й убунте есть божественная XP и какой-нибудь легкий линукс - тысячи их. Это всяко лучше, чем жрать говно.
134 1577802
>>77749
Какие? Хуйня из заголовка треда нихуя не устанавливается.
135 1577991
>>77702
Ставь линупс.
136 1578145
>>77802
VSCode няшечка
137 1578162
Мальчики, быть может, ВЫ мне поможете, м? м???
>>1578132
138 1578185
>>70501 (OP)
Антоны. Короче вопрос.
Знаю, что на Си можно написать много чего, однако не знаю, где намутить реальные вакансии с зп?
Вкатываюсь по учебнику Кочан Вуд. Ранее читал книгу head First C Не дочитал кстати прошел курс на сололерне и читал старую книгу стивена Праты.
Вот прочту я Кочана, куда двигаться дальше? Читать Седжвика алгоритмы на Си? А дальше?
кем устроиться по Сишке?

Пока работаю в техподдержке банка ,но знаю Python, shell и немного жабу.
139 1578187
>>78185
Эмбеддед.
140 1578189
>>77702
двачую линуксо коллегу.
Ставь любую коляску типа минта, убунты, манжары и юзай. Искаропки все работает.
все просто :
набрал код в любом редакторе vi, emacs, gedit, pluma, sublime...
далее выполняешь нехитрую команду:
gcc my_hello_world.c - o my_hello_world && ./my_hello_world
Сия команда просит компилятор скомпилировать данные из файла в исполняемый файл
в случае успешного выполнения этой команды инструкция ./ запустит этот файл в текущем каталоге.
141 1578191
>>78187
спасибо. а еще кем?
видел, что можно на openCV что-то делать.
142 1578193
>>78189

>gcc my_hello_world.c - o my_hello_world && ./my_hello_world


А потом его ждет увлекательный мир ключей компилятора, автоматизация сборки, Make, CMake, shell-скрипты, плагины для автокомплита. Дебагинг кода руками через gdb.
>>78191
Ну там C++ скорее, мне кажется.
143 1578196
>>78193

>есть желание ковыряться в Си


>сборка не мышкой как что-то плохое


лооольский
144 1578207
>>78196
Да не, меня просто позабавила эта инструкция по сборке, которая годится только для программы из одного файла.
Стикер63 Кб, 128x128
145 1578209
>>78207
В принципе любая программа на си может быть из одного файла
146 1578295
>>77991
Ага, а потом думать как поменять шрифт, как сделать чтобы сеть коннектилась, как флешки открывались, как убрать ебучий пароль и тд
147 1578421
>>78207
А несколько файлов сразу и не бывает. Как проект, так и сборка для каждого файла своя.
148 1578508
>>70501 (OP)
Читаю k&r

>/ getbits: get n bits from position p /


>unsigned getbits(unsigned x, int p, int n)


>{


> return (x >> (p+1-n)) & ~(~0 << n);


>}



Допустим, есть некое число, из которого я хочу получить 8 битов со 2ой позиции. Получается: x >> (2 + 1 - 8), то есть x >> -6. Но ведь сдвиг на отрицательное число - это undefined behaviour. Как так?
149 1578516
>>78508
А все, дошло, позиция считается справа налево, но количество битов, что мы берем, идет слева направо. Таким образом со второй позиции нельзя взять 8 битов.
150 1578743
Я так понимаю, даже в бородатые времена в реализации Сишечки asm был необходим лишь для создания оберток системных вызовов? Или всякие менеджеры кучи и прочее тоже прямо на asm писалось? Думаю подобие стандартной библиотеки на asm захуярить.
151 1579256
>>77264
Бамп вопросу
152 1579261
>>77264

>некоторые файлы по 3 тысячи строк


Зделой либу, как все нормальные погромисты
153 1579280
>>79261
Там все логика.
154 1579583
>>79280
Хуёгика. У тебя что, основной алгоритм, ядро решаемой задачи, раскидан ифами на 50 функций, или божественная монолитная процедура с сотнями goto? По-любому есть какие подпрограммы низшего порядка, и их подзадачу можно как-то по-человечески назвать.
155 1579659
>>79583
У меня в файле куча Set\Get функций описана, конструктор и прочая хуита. Логики там поменьше, но таки да, там пара не маленьких таких свичкейзов. Но большую часть как раз Set\Get занимают ибо они имеют необходимость влиять на логику.
156 1579661
>>79583

> По-любому есть какие подпрограммы низшего порядка,


Все что можно - раскидано. Большая часть вызывается 1-2 раза, но все равно обернута в локальную функцию во имя читаемости.
157 1580101
Я изобрел лаконичное и корректное округление размеров:
size += -size % sizeof(long);
Могу рассчитывать на премию Кернигана, или two's complement и идентичный остаток для знакового и беззнакового деления - сугубо x86, и я - UB-кладбище-пидор?
158 1580108
Алсо, я вам свой маллок принес:
https://pastebin.com/rzzeaADh
Хедер додумайте сами. На форматирование первого if жалуйтесь pastebin пидорам, у которых, в отличие от здоровых людей, tab=4, pi=3.18, iq=70.
159 1580117
Эх, как же я люблю сишечку, анонеры! Ни за что не брошу. Во внерабочее время буду с ней. Женюсь.
sage 160 1580197
>>80108
Уноси эту шляпу.
161 1580216
>>80197
куда?
162 1580252
Можно ли в вин10 последней заюзать HalDisplayString когда винлогон уже запущен?
163 1580276
>>80252
Нет.
164 1580281
>>80276

Почему?
165 1580292
>>77702
Попробуй qtCreator.
166 1580578
Что нужно сдеалть чтобы выражение getchar() != EOF стало равно 0, а не 1?
167 1580581
>>80578
Подать ему на вход EOF. В линуксе это будет ^D, Ctrl-D тобишь.
168 1580590
>>80581
а в окнах?
169 1580591
>>80590
Не знаю, я когда до этого дошёшь, уже окончательно перекатился.
170 1580595
>>80591
спасибо за ответ. а куда перекатился? на cpp?
171 1580597
>>80595
На линукс же.
172 1580601
>>80597
а я думал язык сменил.
173 1580602
>>80597
ctrl + z windows
crtl + d unix
я загуглил.
174 1580604
>>80601
Судя по "дошёшь", язык я-таки сменил. Русский.
175 1580607
>>80602
>>80604
спасибо, благодаря тебе всё работает. подсказал про линукс я загуглил окна и сделал.
176 1580631
Куда нажать чтобы вот это

http://mirror.linux-ia64.org/gnu/gcc/?C=M;O=D

на комплюктер скачалось
177 1580639
>>80631
какую-то комнаду нужно в сосноле прописат очевидно же.

мимо советую с окон
178 1580655
>>80631
Оно тебе не нужно
179 1580674
Какие задачи у С в 2020 году? Что на нём делать лучше чем не на нём? В школе учили только бейсик.
180 1580676
>>80674
Чтобы на нём делать всё что угодно. В первую очередь драйвера.

Петухи могут сколько угодно кукарекать, но драйвера основна основ по прежнему пишутся онли на си.
181 1580683
>>80676
Какой набор инструментов нужен для написания драйверов? Желательно минималистичный.
182 1580694
>>70501 (OP)
Помогите!
Дали задание в вузе, найти неопределенный интеграл методом Ньютона.
Я пытался нагуглить что это такое и охуел от сложности, там какие-то трехэтажные формулы и ничего вообще не понятно. Где есть объяснение простым языком как решать интегралы этим ебучим методом?
183 1580701
>>80683
не знаю.
184 1580703
>>80694
придётся разбираться как это решается. халявы здесь нет, сиди и вкуривай все эти статьи и прочее пока не поймёшь. увы, но моя практика говорит что других путей нет.
185 1580728
>>80694
Не волнуйся, в армии всему научат, от забора и до обеда будешь программистом.
186 1580736
>>80694

>Дали задание в вузе, найти неопределенный интеграл методом Ньютона.


Определенный может? Как ты неопределенный численно найдешь
187 1580738
>>80736
Да, определенный. Все время их путаю.
188 1580739
>>80676
Вот только драйверы писать не нужно, они уже написаны, не тобой, а свои не напишешь, никто тебе спецификации железа не даст.
189 1580743
>>80694
>>80694
В вузе не могут дать задание, которое досконально не разбирали до этого вместе с преподом. А поскольку ты единственный в треде, кто (не) присутствовал, то сам дурак.
190 1580750
>>80738
Ну ты прямоугольниками интеграл найти можешь?
191 1580782
>>80743
Я на заочном и сосу бибу.
192 1580785
>>80782
Спроси в /б/
изображение.png9 Кб, 513x247
193 1580791
>>80782>>80694
Интегрирование - это наиболее простые численные методы, они просто в лоб одной функцией пишутся чаще всего, буквально 3 строчки.

Метод ньютона, это как метод прямоугольников/трапеций/парабол, только по 4 точкам и с полиномом 3 степени или что-то другое? Какой порядок точности должен быть? Может быть тебе просто вот эта таблица нужна?
194 1580796
>>80791
N=18, хз.
195 1580806
>>80796
Скинул бы всю формулировку. N - число сегментов (или точек) разбиения, скорее. Численный метод 18 порядка точности много побочек будет иметь, мне кажется, и это уже не учебная задача, а довольно узкоспециализированная, а вся сложность в выводе соответствующей коэффициентов.

Найди в общем как методом парабол/симпсона/гаусса считается интеграл, и подставь вместо 3 точек 4 точки с весами 1/8 3/8 3/8 1/8 из таблицы, почти точно уверен, что это то что тебе нужно. Простых популярный объяснений с картинками тысячи для метода парабол.
196 1580823
>>80739
даташиты можно найти ко многим микросхемам в на той же схеме от материнки ноутба или я ошибаюсь?
197 1581086
Анчоусы, поясните за тип данных. Какая разницу между интежером и лонгом. Вроде читал, но ничего не понял. Объясните доходчиво, молю.
198 1581093
>>81086
Я эту разницу понимаю так: инт минимум 2 байта, лонг 4 байта. То есть в лонг влезет большее число. Но в зависимости от платформы разницы может и не быть.
Вот тебе с вики про инт:
Как правило, в современных компиляторах для 32- и более -разрядных платформ имеет размер 4 байта и диапазон [−2 147 483 648, +2 147 483 647], однако на 16- и 8-битных платформах имеет размер, как правило, 2 байта в диапазоне значений [−32768, +32767], что часто вызывает путаницу и приводит к несовместимости неаккуратно написанного кода
199 1581107
>>81086
char - байт, long - от разрядности системы, short и int где-то между ними всегда.
200 1581110
>>81107
Ну смотри у меня 64-х битная система.

лонг это 64 разрядное число
инт это 32 разрядное число
шорт это 16 рарядное число так чтоли?
201 1581122
202 1581124
>>81122
а какой смысл в том какой разрядности число? что в си реально чтоли диапазон у числа ограничивается его разрядностью? почему так?
Capture.JPG13 Кб, 576x43
203 1581150
Аноны, что они здесь подразумевают под "blanks" я не моуг понять.
204 1581154
>>80676

> онли на си.


Неа. Пишут и на rust, и на go даже.
205 1581155
>>80739

> а свои не напишешь


Чушь. Лень искать другие примеры. Первое, что вспомнил – nouveau.
206 1581156
>>81150
а пробел. извините, я дегенерат.
207 1581175
>>81124
Ну а как иначе, лоляндрий? В проце есть 64-разрядная схема, которая с одного импульса от счетчика тактов выстреливает результат арифметической операции. Сделай больше, если хочешь. Или длиннку напиши, но без перегрузки операторов не закосплеишь, будто это нативная возможность.
208 1581179
>>80676

>но драйвера основна основ по прежнему пишутся онли на си.


Уже давно на c++
209 1581198
>>81175
спасибо большое, понял. ну я просто ньюфаня которая с питона перекатывается на си. поэтому вопросы такие, там то этого нет, там всё гораздо проще.
210 1581210
>>80252
>>80276
>>80281

Бамп вопросу. Может создать отдельный тред для ring0-мартышек?
image.png81 Кб, 1546x487
211 1581220
>>81110
Вот так это на Windows
212 1581221
>>81220
Скинь код, я и на линуксе запущу.
изображение.png8 Кб, 888x228
213 1581224
>>81220
Так это не на виндоус, а в твоём компиляторе, если что. К виндоусу это не имеет никакого отношения и скомпилированный разными компиляторами значения будут разные.
В mingw long double - это десятибайтовый флоат (выравнивается до 16), double - восьмибайтовый, а float - четырёхбайтовый.
Очень странно что у тебя в студии long double имеет такое же максимальное значение как и double, ведь в действительности почти все пк-процессоры поддерживают именно десятибайтовые флоаты на аппаратном уровне.

>>81110
Снова зависит от компилятора. В mingw 32 32 16, 64 - это только (unsigned) long long. Сlanq такой же результат выдаёт.
214 1581228
>>81155
Давай я тоже вспомню. Есть такой геймпад, дуалшок3, так вот, мучились жопой лет пять написать ему драйвер xinput под винду, в результате так и осталось глючное говно как и твои потуги на ввидеодрайвер, вдобавок написан на C#. Так что, куда ты вообще лезешь со своим ССЫ я вообще не пойму, если драйвера даже на шарпах пишут. Как и всегда, плюсы являются единственным адекватным вариантом, грамотно сочетающим и возможности и нативную низкоуровневость. А ты со своими ссами такогй же дебил как и те шарпомакаки, только с другой стороны шизо-максимума говноедского.
215 1581681
>>80683
То что система в SDK наборе предлагает
216 1581685
>>81224
спасибо большое за ответы всем, немного понял. сегодня вот про битность процессоров читал чтобы понять хоть на что она влияет. но я всё равно не особо понимаю зачем в языке эти short которые уерзают до 2 бит и long которые расширяют int 4 бита до 8-ми бит

Зачем нужно биты изменять?
изображение.png26 Кб, 716x413
217 1581716
>>81685
Ты имел ввиду байты, да?

Если ты имеешь почему один и тот же тип может иметь разные размеры, то этого никто не знает - так получилось, наверное. Для int в требованиях только поддержка [−32767, +32767], например на ардуине int - 16 битный. На 32-битных процессорах память быстрее работает при обращениях с выравниванием в 4 байта, и потому int стали делать 32-битным в реализациях, потому что программа от этого только быстрее начинала работать, я думаю.
https://ru.wikipedia.org/wiki/Система_типов_Си
И есть всякие int64_t и uint8_t, если тебе нужен определённый размер.

Если в общем для чего нужны 2 и 8 байта, то 2 для экономии памяти, и ещё есть всякие simd-инструкции с пика, который за одну инструкцию могут переварить в два раза больше 2-байтовых чисел, чем 4-байтовых. Это штука может очень заметно ускорить обработку изображений, где все цвета 8-битные и в редких случаях 16-битные. Ещё они места само собой меньше занимают, что позволяет на микроконтроллерах сохранять больше, а на пк (где проблем с памятью уже считай нет) умещать в кеш в два раза больше данных. Кеш - очень полезная штука, массив которые влез в кеш обработается в некоторых случаях в несколько раз быстрее, чем тот, который не влез.
8 байт нужны, потому что это естественный размер 64-битных систем, все указатели там 64 битные и программа может работать с 64-битными считай с той же скоростью, что и с 32-битными. Нужно для размеров файлов, времени в миллисекундах. Длинная арифметика на 8-байтовых будет в два раза быстрее и так далее. Двух миллиардов 4-байтового числа хватает не всегда.
Но да, 4-байтовый int покрывает 80% применений, и остальные 19% покрываются 1 и 2-байтовыми целочисленными типами, если не считать указатели.
218 1581737
>>81716
спасибо тебе большое, анон за такой развёрнутый ответ. мне много стало понятно, не всё конечно, но многое. спасибо большое теперь уже хоть представление есть зачем это нужно.

да перепутал биты с байтами. байты имел ввиду, спасибо ещё раз.
219 1581740
>>81716
Анон, а если я здесь заменю 32 на 64(система 64 битная) изменится ли от этого память которую занимают типы данных (поведение компилятора) или нет?
Untitled.png59 Кб, 1366x632
220 1581742
>>81740
>>81716
пик отклеился
221 1581750
>>81740
Размер size_t измениться. И всех указателей, int* и любых других. По идее, никогда не пользовался студией.
Ты можешь проверить это сам за одну минуту.

Да, ещё если интересуют различия - в 64-битных системах 16 регистров, а в 32-битных 8 регистров. Регистры, это, грубо говоря, сверхбыстрый (быстрее кеша) кусочек памяти на процессоре. Вот все эти переменные в циклах for, или возврат функций - в действительности они находятся в регистрах и в память они могут даже не попадать. Соответственно 64-битная программа содержащая инструкции с использованием всех 16 регистров будет немного быстрее, потому что ей нужно меньше переменных помещать в память. Вряд ли 64-битный процессор сам сможет подменить в 32-битной программе операции обращения к памяти на работу с дополнительными регистрами - не знаю как там устроена совместимость с 32-битными программами или отвечает за это вовсе операционка на ходу переписывающая коды. Но и памяти 64-битная чуть-чуть больше скушает, за счёт 8-байтовых указателей.
222 1581765
>>81750

>в 64-битных системах 16 регистров,


Что за бред? Посмотри сколько регистров у итаниумов например.
223 1581773
>>81765
Он скорее всего имел в виду x86-64 архитектуру, там у 16 логических регистров.
224 1581792
>>81765
Я про обычные распространённые компьютеры с х86-64, который умеет и в 32-битные, и в 64-битные программы. Он же для обычного пк на студии пишет и судя по вопросам только-только вкатывается, верно?
Очевидно какой-нибудь arm может иметь какое-то другое количество регистров.
225 1581813
>>81792
>>81750
да, анчоус я ньюфаня. а можешль какую-нибудь книгу дать по которой ты освоил это всё, а то я всё равно много не понимаю мне нужен материал где с азов начинается для ньюани, а то я работу железа знаю только как радиоэлектрик, что есть процессор, у него есть пины, есть питание, есть там многосигнальные каналы(шины), но про какие-то регистры, кэши я вообще ничего не знаю.
226 1581816
>>81750

>и любых других. По идее, никогда не пользовался студией.


>Ты можешь проверить это сам за одну минуту.


как?
227 1581828
>>81816>>81813
Написать printf("%d %d %d\n",(int)sizeof(size_t),(int)sizeof(void*),(int)sizeof(long)) и запустить в x86 и x64, посмотреть что и для каких типов поменяется. Можешь ещё на _Alignof(<название типа>) посмотреть, вдруг там выравнивание структур изменяется при переключении между 32/64 битами - я не знаю.
Книгу не могу посоветовать, я ассемблерные вставки дрочил пару месяцев и когда находил какой-то странный эффект искал чем он объясняется, и всё. Знания очень поверхностные, просто чтобы более-менее понимать как оно работает и писать немного более эффективный код.
Точно не обещаю, но тебе и не нужно ничего знать про регистры и кеши в 95% случаев. Это нужно в каких-то ускоспециализированных прикладных вещах - если ты только учишься, просто поставь x64, изучай алгоритмы и внимательность, а про регистры, выравнивания и кеши забудь на год или два - оно только мешать будет. За исключением кеша, наверное - но достаточно просто иметь в виду что он есть и вдвойне это иметь ввиду, если будешь писать многопоточную программу.
228 1581837
>>81828
спасибо большое понял ещё раз, ты очень мне сильно помогаешь, анчоус. оставайся в треде и в будущем, молю.
229 1581997
>>81828

>просто поставь x64


Глупость, и вредная. 64 бит не нужно если твоя программа не использует 4+ гигов оперативы. Получится бесполезно раздутый размер и жор той же оперативы ради... ничего. Мне понадобилочь 64 бит только пару раз, для вмешательства в чужие программы (запись в память и инжект длл), корые были 64 бит, т.к. битность должна совпадать, иначе никак.

А вот что нужно ставить, так это юникод. За char надо сразу бить в ебало с вертушки и ломать руки.
230 1582099
>>81997
А юникод это получается не раздутие? С таким подходом и юникод не надо юзать если кроме англ. символов ничего не используется.
231 1582139
>>82099

>С таким подходом и юникод не надо юзать если кроме англ. символов ничего не используется.


Vvedite razmer massiva:

>"Юникод не нужен" ко-ко-ко



Ладно, а если серьезно. Ты, тупой выблядок имбецильной спидозной шлюхи, вообще в курсе, что Windows уже 20 лет (ДВАДЦАТЬ ЛЕТ, ТУПОРЫЛАЯ СВИНЬЯ!) является юникодной. Это значит, в системе все функции - юникодные, работают только с юникодными строками и никак иначе. Неюникодных функций НЕ СУЩЕСТВУЕТ.

И тут ты спросишь: "А как же мои (и таких же имбецилов) выдресты char★ тогда работают?". А вот как, при каждом вызове системной функции происходит конверсия каждой строки в юникод. Для каждой строки создается буфер в два раза больше (юникод двухбайтовый) и вызывается функция преобразования строки, заполняющая его юникодом, который и подается потом в функцию. Ты понимаешь, что это кошмар ёбаный? Вон, выше кто-то мямлил про оптимизацию кешем и регистрами, но о какой оптимизации речь, если ты своими руками творишь такой пиздос? Это всё равно что разбить кому-нибудь лицо кувалдой, а потом подстричь ногти, мол нехорошо когда ногти неаккуратные. Да какая разница какие ногти, если ты ебальник размочаалил в смятку? Оптимизаторы обоссаные, придурь неизлечимая.

И дело не только в лютом говнокоде получающемся из за char и не только в долбаных кракозяблах у всех кто не в твоей обоссаной деревне живет. Это говно еще создает скрытые ловушки в коде и поощряет грубые ошибки.
Смотри сюда. Ты в курсе, что память имеет атрибуты как файлы, что может быть защищена только для чтения например? И что строковый литерал является такой запрещенной на запись памятью? Так вот, есть функции принимающие строки, но при этом и меняющие их тоже, пишущие в них. Таким образом, если ты подашь константную строку не читая описание функции как обычно дебилы делают, ты получишь падение программы. И это хорошо, так ты поймешь где проебался, но ТОЛЬКО В ЮНИКОДЕ. Если же ты будешь срать чарами, из за преобразования строки в новый буфер под капотом системы, который не является защищенным, твоя программа будет работать как ни в чём не бывало, из за чего, во-первых, ты привыкнешь писать неправильно, и во-вторых, если потом решишь перекомпилировать в юникод, твоя программа посыпется как ёбаное говно.

И вообще, просто спроси себя. Почему в 2020 году нет например веб-страниц в KOI-8 и подобных кодировках, а ведь раньше все такие были, постоянно приходилось видеть кракозяблы и переключать кодировки на сайтах. но даже веб-макаки поняли что юникод это НЕОБХОДИМОСТЬ в эпоху интернета - МЕЖДУНАРОДНОЙ сети, что кракозяблы это тупо, но только не долбоёбы погромисты, корчащие из себя таких умных, ко-ко-ко, а на деле тупее последних свиней. Почему-то даже в 2020 каждая вторая (и даже первая) программа обязательно чаровысер с кракозяблами. Как вы вообще живете такие тупорылые?
231 1582139
>>82099

>С таким подходом и юникод не надо юзать если кроме англ. символов ничего не используется.


Vvedite razmer massiva:

>"Юникод не нужен" ко-ко-ко



Ладно, а если серьезно. Ты, тупой выблядок имбецильной спидозной шлюхи, вообще в курсе, что Windows уже 20 лет (ДВАДЦАТЬ ЛЕТ, ТУПОРЫЛАЯ СВИНЬЯ!) является юникодной. Это значит, в системе все функции - юникодные, работают только с юникодными строками и никак иначе. Неюникодных функций НЕ СУЩЕСТВУЕТ.

И тут ты спросишь: "А как же мои (и таких же имбецилов) выдресты char★ тогда работают?". А вот как, при каждом вызове системной функции происходит конверсия каждой строки в юникод. Для каждой строки создается буфер в два раза больше (юникод двухбайтовый) и вызывается функция преобразования строки, заполняющая его юникодом, который и подается потом в функцию. Ты понимаешь, что это кошмар ёбаный? Вон, выше кто-то мямлил про оптимизацию кешем и регистрами, но о какой оптимизации речь, если ты своими руками творишь такой пиздос? Это всё равно что разбить кому-нибудь лицо кувалдой, а потом подстричь ногти, мол нехорошо когда ногти неаккуратные. Да какая разница какие ногти, если ты ебальник размочаалил в смятку? Оптимизаторы обоссаные, придурь неизлечимая.

И дело не только в лютом говнокоде получающемся из за char и не только в долбаных кракозяблах у всех кто не в твоей обоссаной деревне живет. Это говно еще создает скрытые ловушки в коде и поощряет грубые ошибки.
Смотри сюда. Ты в курсе, что память имеет атрибуты как файлы, что может быть защищена только для чтения например? И что строковый литерал является такой запрещенной на запись памятью? Так вот, есть функции принимающие строки, но при этом и меняющие их тоже, пишущие в них. Таким образом, если ты подашь константную строку не читая описание функции как обычно дебилы делают, ты получишь падение программы. И это хорошо, так ты поймешь где проебался, но ТОЛЬКО В ЮНИКОДЕ. Если же ты будешь срать чарами, из за преобразования строки в новый буфер под капотом системы, который не является защищенным, твоя программа будет работать как ни в чём не бывало, из за чего, во-первых, ты привыкнешь писать неправильно, и во-вторых, если потом решишь перекомпилировать в юникод, твоя программа посыпется как ёбаное говно.

И вообще, просто спроси себя. Почему в 2020 году нет например веб-страниц в KOI-8 и подобных кодировках, а ведь раньше все такие были, постоянно приходилось видеть кракозяблы и переключать кодировки на сайтах. но даже веб-макаки поняли что юникод это НЕОБХОДИМОСТЬ в эпоху интернета - МЕЖДУНАРОДНОЙ сети, что кракозяблы это тупо, но только не долбоёбы погромисты, корчащие из себя таких умных, ко-ко-ко, а на деле тупее последних свиней. Почему-то даже в 2020 каждая вторая (и даже первая) программа обязательно чаровысер с кракозяблами. Как вы вообще живете такие тупорылые?
232 1582143
>>82139

>Windows уже 20 лет (ДВАДЦАТЬ ЛЕТ, ТУПОРЫЛАЯ СВИНЬЯ!) является юникодной


Забавный ты выбрал аргумент, конечно. А 64 битной она является 15. Пять лет назад не стоило на юникоде писать, получается? Или всё же пора программы 64-битные писать?
233 1582147
>>81997
>>82143
Попробуй еще раз прочитать, и главное понять.
Какой аргумент за 64 бит в твоей программе? Назови его, дебилоид? Ты программист? Ты думать вообще можешь? Зачем тебе 64 бит, дебил, кроме как РАЗОСРАТЬ ПРОГРАММУ В РАЗМЕРЕ, ПРОСИРАЯ ВПУСТУЮ РЕСУРСЫ КОМПЬЮТЕРОВ ПОЛЬЗОВАТЕЛЕЙ, КОТОРЫЕ НЕ БЕСКОНЕЧНЫ, И ВООБЩЕ ЗА НИХ ДЕНЬГИ УПЛАЧЕНЫ. Ты крадешь у людей, понимаешь, свинья тупая?
234 1582149
>>82147
А твой юникод тоже юзает в 2 раза больше памяти, и что теперь? На пару КБ больше стало, ну охуеть теперь.
235 1582150
>>82147

>Какой аргумент за 64 бит в твоей программе?


Ладно, а если серьезно. Ты, тупой выблядок имбецильной спидозной шлюхи, вообще в курсе, что Windows уже 15 лет (ПЯТНАДЦАТЬ ЛЕТ, ТУПОРЫЛАЯ СВИНЬЯ!) является 64-битной. Это значит, в системе все функции - 64-битные, работают только с 64-битными опкодами и никак иначе. Не 64-ьитных функций НЕ СУЩЕСТВУЕТ.

И тут ты спросишь: "А как же мои (и таких же имбецилов) выдресты x86-32 тогда работают?". А вот как, при каждом вызове системной функции происходит конверсия каждой команды в 64бит. Для каждой команды создается буфер в два раза больше ( 64 в два раза больше 32) и вызывается функция преобразования, заполняющая его до 64бит, которая и подается потом процессору. Ты понимаешь, что это кошмар ёбаный? Вон, выше кто-то мямлил про оптимизацию кешем и регистрами, но о какой оптимизации речь, если ты своими руками творишь такой пиздос? Это всё равно что разбить кому-нибудь лицо кувалдой, а потом подстричь ногти, мол нехорошо когда ногти неаккуратные. Да какая разница какие ногти, если ты ебальник размочаалил в смятку? Оптимизаторы обоссаные, придурь неизлечимая.

И дело не только в лютом говнокоде получающемся из за 32бит и не только в долбаных кракозяблах у всех кто не в твоей обоссаной деревне живет. Это говно еще создает скрытые ловушки в коде и поощряет грубые ошибки.
Смотри сюда. Ты в курсе, что память имеет атрибуты как файлы, что может быть защищена только для чтения например? И что строковый литерал является такой запрещенной на запись памятью? Так вот, есть функции принимающие строки, но при этом и меняющие их тоже, пишущие в них. Таким образом, если ты подашь константную строку не читая описание функции как обычно дебилы делают, ты получишь падение программы. И это хорошо, так ты поймешь где проебался. Если же ты будешь срать чарами, из за преобразования строки в новый буфер под капотом системы, который не является защищенным, твоя программа будет работать как ни в чём не бывало, из за чего, во-первых, ты привыкнешь писать неправильно, и во-вторых, если потом решишь перекомпилировать, твоя программа посыпется как ёбаное говно.

И вообще, просто спроси себя. Почему в 2020 году нет например веб-страниц на 32-битных и подобных процессорах, а ведь раньше все такие были, постоянно приходилось видеть. но даже веб-макаки поняли что 64бита это НЕОБХОДИМОСТЬ в эпоху интернета - МЕЖДУНАРОДНОЙ сети, но только не долбоёбы погромисты, корчащие из себя таких умных, ко-ко-ко, а на деле тупее последних свиней. Почему-то даже в 2020 каждая вторая (и даже первая) программа обязательно 32-битный высер. Как вы вообще живете такие тупорылые?
235 1582150
>>82147

>Какой аргумент за 64 бит в твоей программе?


Ладно, а если серьезно. Ты, тупой выблядок имбецильной спидозной шлюхи, вообще в курсе, что Windows уже 15 лет (ПЯТНАДЦАТЬ ЛЕТ, ТУПОРЫЛАЯ СВИНЬЯ!) является 64-битной. Это значит, в системе все функции - 64-битные, работают только с 64-битными опкодами и никак иначе. Не 64-ьитных функций НЕ СУЩЕСТВУЕТ.

И тут ты спросишь: "А как же мои (и таких же имбецилов) выдресты x86-32 тогда работают?". А вот как, при каждом вызове системной функции происходит конверсия каждой команды в 64бит. Для каждой команды создается буфер в два раза больше ( 64 в два раза больше 32) и вызывается функция преобразования, заполняющая его до 64бит, которая и подается потом процессору. Ты понимаешь, что это кошмар ёбаный? Вон, выше кто-то мямлил про оптимизацию кешем и регистрами, но о какой оптимизации речь, если ты своими руками творишь такой пиздос? Это всё равно что разбить кому-нибудь лицо кувалдой, а потом подстричь ногти, мол нехорошо когда ногти неаккуратные. Да какая разница какие ногти, если ты ебальник размочаалил в смятку? Оптимизаторы обоссаные, придурь неизлечимая.

И дело не только в лютом говнокоде получающемся из за 32бит и не только в долбаных кракозяблах у всех кто не в твоей обоссаной деревне живет. Это говно еще создает скрытые ловушки в коде и поощряет грубые ошибки.
Смотри сюда. Ты в курсе, что память имеет атрибуты как файлы, что может быть защищена только для чтения например? И что строковый литерал является такой запрещенной на запись памятью? Так вот, есть функции принимающие строки, но при этом и меняющие их тоже, пишущие в них. Таким образом, если ты подашь константную строку не читая описание функции как обычно дебилы делают, ты получишь падение программы. И это хорошо, так ты поймешь где проебался. Если же ты будешь срать чарами, из за преобразования строки в новый буфер под капотом системы, который не является защищенным, твоя программа будет работать как ни в чём не бывало, из за чего, во-первых, ты привыкнешь писать неправильно, и во-вторых, если потом решишь перекомпилировать, твоя программа посыпется как ёбаное говно.

И вообще, просто спроси себя. Почему в 2020 году нет например веб-страниц на 32-битных и подобных процессорах, а ведь раньше все такие были, постоянно приходилось видеть. но даже веб-макаки поняли что 64бита это НЕОБХОДИМОСТЬ в эпоху интернета - МЕЖДУНАРОДНОЙ сети, но только не долбоёбы погромисты, корчащие из себя таких умных, ко-ко-ко, а на деле тупее последних свиней. Почему-то даже в 2020 каждая вторая (и даже первая) программа обязательно 32-битный высер. Как вы вообще живете такие тупорылые?
236 1582156
>>82149
Ну что, обычный современный "программист". На свой код насрать, на проблемы пользователей с кракозяблами и тратой их ресурсов насрать, на всё насрать кроме себя любимого "мне лень ебаться", хотя и ебли-то нет, только страх менять свои вредные привычки. И всё бы хорошо для обычных тредов ждаваскрипта или питона, но тут-то тред Си ради всего свято. Но нет, та же шваль и тут всё заполонила и засрала.
237 1582170
>>82156
Так я не понял, зачем мне юзать юникод если он в 2 раза больше весит? А как же лишний килобайт памяти? Тебе что, насрать на память пользователя?
238 1582224
>>70501 (OP)
Вот хохма, выполняю себе упражнение из k&r на тему макросов: антивирь винды удалил экзешник, сославшись, что там троян О,О. Интереса ради закинул экзешник на вирустотал - 10/68 обнаружили вирус. А ведь там было абсолютно безобидное :
#include <stdio.h>
#define swap(t, x, y) {t tmp = x; x = y; y = tmp;}
int main() {
int x = 1;
int y = 2;
swap(int, x, y);
printf("x: %d, y: %d", x, y);
return 0;
}
Как так?
239 1582235
>>82170
Удобство пользователю и чистый быстрый код стоят каждого лишнего байта им занимаемого. Это очень низкая плата за столько хорошего, а точнее за избежание лютого говнища устаревших еще 20 лет назад недострлк. Тем более что потерей-то и гет по сути, строк в программах мало.

А вот кода в программах дохуя, у меня лично 64 битный экзешник в два раза больше 32 битного. Но главное, что это ровно ничего не дает, просто просёр в унитаз. Зачем делать хуже если это делает только хуже? Только дебилы так делают, это не программисты, а животный скот, который лепит вредное 64 битное говно ради понтов, тупорылые быдлосы думают, что 64 бита больше и новее, значит круче. Показывают какие они модные современные петушки, компилящие по последним стандартам. Петушня которой место в бутиках, а не в программировании.
240 1582244
>>82147
Анон, ты не прав. Расширения архитектур (SSE, AVX) могут ускорить вычисления в разы, их узкое место - загрузка чисел в регистры, и здесь 64-битная архитектура позволяет уменьшить обращения к памяти в 2 раза (а это часто узкое горлышко (bottleneck) программ), что в итоге выльется в заметное ускорение. В x86-64 есть 12 64-битных регистров общего назначения (RAX-RDX, R8-R15, это позволяет хранить некоторые локальные переменные прямо в них, минимизируя обращения к памяти), а в x86 только 4 (EAX-EDX), и то 32 битных, что уже маловато для всяких трюков компилятора. Алсо простое добавление 64 битного числа (long), которое в x86-64 занимает 3 инструкции (загрузка, добавление, выгрузка), в x86 выльется в более чем десяток инструкций с ветвлением (branch). 64-битный бинарник на C, по моим наблюдениям, занимает всего на 20% больше такого же, но 32-битного, а увеличенная скорость работы оправдывает занимаемое место.
241 1582253
>>82244
Ты слишком добрый для этого чучмека.
0J6NpRnRK6pOQ4JBZT07msswYCFJic8W.JPG165 Кб, 1600x1068
242 1582259
>>81997
>>82139
блин мне так ваш спор понравился, так все эти юникоды захотелось изучить заодно что это такое. как же хочется поскорее перестать бы ньюфаней и разбираться в этом всём
243 1582267
>>82244
я конечно ньюфаня. но вот я играю в euro truck simulator. и эта игра имеет 2 exeшника 32 битный и 64 битный. у меня почему-то при запуске 64 битного игра подлагивает иногда и загружается дольше. на 32 битном всё чудесно.

ноутбук с 64-х битной виндой, 8гб оперативы, процессор 2 ядра по 2.4 ггц, видеокарта с 512мб памяти не думаю что это просто ноут 64 битные приложения не тянет.
244 1582285
>>82267
Файл подкачки у тебя включен, конечно же. 64 битная версия кушает больше оперативы, но при её достаточном наличии (и правильном использовании системой, а не выгрузкой на диск и обратно) игра работала бы быстрее (за счет уменьшения затрат времени процессора для выполнения одних и тех же действий). На ограниченных ресурсах 32-битная может быть быстрее, т.к. в твоем примере из-за маленького количества видеопамяти может тратится больше времени на загрузку и выгрузку данных с оперативы в видеопамять и обратно, что дороже, чем увеличенная нагрузка на процессор от более медленных (по сравнению с 64-битными) 32-битных инструкций (короче, видеокарта может не справлятся). Алсо попробуй сбрасывать RAM cache (кэш оперативной памяти) перед запуском игры (это помогает избавится от микрофризов). Можешь ещё попробовать отключить файл подкачки, но делай это только если понимаешь его назначение.
245 1582286
>>82285
у меня видеокарта интегрированная. и её видеопамять находится на озу.

спасибо, понял. да думаю что дело в видеокарте слабой, интегра ещё и память из озу берёт.
246 1582298
>>82285

>за счет уменьшения затрат времени процессора для выполнения одних и тех же действий


Что за бред. В любом случае, чем меньше код в размере, чем меньше оперируемые числа, тем быстрее. Больше не может быть быстрее, ты же ебанутый.
247 1582299
>>82139

>Ты понимаешь, что это кошмар ёбаный? Вон, выше кто-то мямлил про оптимизацию кешем и регистрами


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

>>82147

>Ты крадешь у людей, понимаешь, свинья тупая?


А вот это обращайся в си-шарп и джава-треды, пожалуйста. И ещё в особенности в треды с современном вебом, самый пиздец там. У меня игра с открытом миром, который можно неделями исследовать занимает 2 гб оперативки, а браузер, где открыта четыре треда из текста и картинок тоже занимает 2 гигабайта (да, и он 32-битный, кстати), и получается совсем жутко если открыть тяжёлый сайт по типу ютуба с открывающимися менюшками и видео. А сортировка тысячи файлов по размеру в проводнике виндоуса занимает 2-3 секунды, хотя тысяча элементов с уже известным размером сортируется за милисекунду.
248 1582300
Юникод в Си - это всякие wchar, wprintf и так далее ж?
249 1582303
>>82298
>>82285
короче дайте совас какой-нибудь книги посвящённой работе машины на низком уровне от авторитетного человека, а то я не могу эти споры на двоще читать. один одно говорит вроде складно, другой другое
250 1582304
>>82244
Могут наверное, но они не используются. Я буквально на днях в очередной раз наблюдал игру, между прочим серьезную от серьезной компании, требующую SSE 4.2, и эту зависимость пофиксили буквально патчем пары байт. До сих пор бинарники компилят чуть ли не под 486.
251 1582307
>>82298
Ох лол.

>чем меньше код в размере, чем меньше оперируемые числа, тем быстрее


Сказочный долбоеб. Одно обращение к памяти (за нужной переменной) будет в сотню раз дороже какой-то инструкции по типу add или and. 32-битная архитектура требует в 2 раза больше обращений к памяти для загрузки/выгрузки такого же объема данных. Простые операции над 64-битными числами (которые используются повсеместно, т.к. даже файловая система у тебя 64-битная) на 32-битной архитектуре кроме огромной кучи инструкций привносит ветвление, которое (в случае ошибки предсказателя ветвлений) предполагает сброс кэша спекулятивного исполнения, что выльется в время, раз в 1000 большее, чем исполнение той же операции на x64.

>Больше не может быть быстрее, ты же ебанутый.


Иди напиши это мэйнтейнерам gcc, они ведь зачем-то вместо одной операции деления для оптимизации раскладывают её на тридцаточку битовых, вот ведь ебанутые, да?
252 1582312
>>82300
wchar_t, а функции просто гуглишь "<оригинальное название> unicode", сразу же выдает аналог. Да, обычно с w.

>>82303
Любое программирование под DOS, и будет низкий уровень. Я бы запретил учить не на DOS, винда многое прощает из за раздутых возможностей, позволяющих говнокодить, не понимая этого.
253 1582313
>>81228
Твой пост мне зачем? Речь была о возможности/не возможности, а не предпочтениях и кто на чём их кодит.
254 1582318
>>82307
Больше похоже на маркетинг. То-то та же винда 64 бит явно тормознее 32-битной. Давай расскажи как первая в сотню раз быстрее, трепло.
255 1582320
>>82313
Я говорю о реальности, а своими виртуальными возможностями можешь подтереться.
256 1582325
>>82318
Сходи сначала ознакомься с тем, как работает процессор, т.к. ты даже не можешь возразить ни на один из моих вышенаписанных аргументов, ибо CPU для тебя - магическая чёрная коробочка.
257 1582326
>>82312
спасибо и что там в погромировании под dos будет прям всё-всё и про кэши и про регистры и про разрядности? мне многое станет понятно.

сперва я си выучу на окнах, потом уже на дос перейду это слишком сложно для меня пока что
258 1582329
>>82325
С процессором знакомы разработчики компилятора. Я на си пишу, а не в машинных кодах. И ты про винду так и не ответил. Где зваленая производительность, трепло? Иди для тебя даже флагманский продукт мировой корпорации не аргумент? Дураки не умеют программировать, да? Только ты треплешь фантазии на сосаче правильно?
259 1582330
>>82326
Рано в такое лезть. Для начала научишься стеку, отлично помогает от безмозглого говнокода. Название знаменитого сайта не даст соврать "стековерфлоу".
изображение.png41 Кб, 750x934
260 1582338
>>82298>>82150
Заебал. Поехавший адепт 32 битной компиляции.

Предлагаю тебе запустить вот это скомпилированное в 32 и 64 бита: https://ideone.com/qqDFjV
У меня получаются вот такие числа (слева количество - справа время выполнения) с "-fno-tree-vectorize -O3". В сортировке при 64 битах где-то на 10% быстрее, а на значениях в 1000 даже почти на 20%. При какой-то O(n2) хуйне просто 10% на всех числах.
С крестиками это первый прогон - на него можно не смотреть. На всех значения кроме самых маленьких (где счётчик тактов не может корректно оценить время) побеждает 64-битная программа.
Но да, на аж целых 10кб больше занимает скомпилированная программа - ужас то какой. Сейчас компьютеры вроде бы в производительность упираются намного больше, чем в память - память можно всегда ещё плашку докупить, а повысить частоту процессора в два раза так просто нельзя - потому я вижу верным оптимизировать именно быстродействие.
261 1582342
>>82329

>С процессором знакомы разработчики компилятора. Я на си пишу, а не в машинных кодах.


Так зачем ты полез что-то доказывать в тему, в которой ты ни черта не смыслишь, макака? Хороший Сишник должен знать устройство процессора и ассемблер хотя бы на базовом уровне, что бы написать код, работающий с оптимальной скоростью.

>флагманский продукт мировой корпорации


>винда


Ох лол. Для тебя высер мелкомягких, написанный индусами за миску риса, и скомпилированный их же говном, которое mov eax, 0 генерирует - это эталон?
262 1582343
>>82342
давайте только не будем на токсичность пердолей провоцировать, хуже срачей с пердолями нет ничего в этой жизни.
263 1582344
>>82342

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


Нахуя асм-то знать?
Стикер255 Кб, 512x512
264 1582346
>>82338

>>>1582150


Но, я ж его иронично... За что ты меня к нему приписал?
265 1582348
>>82346
Прости, я не специально, я перепутал пост, там должен был быть >>82139 пост естественно, потому что твой выглядит так же.
266 1582351
А это правда что веб-программисты это не программисты?
267 1582352
>>82348
Хорошо, ты прощён!
268 1582356
>>82344

>Нахуя асм-то знать?


Что бы интринсики вставить в тяжелые операции, если компилятор сам не смог. Что бы иметь доступ к продвинутым битовым операциям (popcnt, lzcnt и т.д.) в виде инлайнового ассемблера или тех же интринсиков, и для всяких других asm-only инструкций (тот же CPUID). Что бы найти тяжелые инструкции в лупах и на что-то заменить для оптимизации. Что бы не пиздеть хуйню про то, что скорость исполнения инструкции зависит от её размера и т.д.
269 1582358
>>82356
а ты чем на работе занимаешься?
270 1582376
>>82320

> Я говорю о реальности


Реальность такова, что пишут, а ты обосрался с аргументами.
271 1582381
>>82356

> >Нахуя асм-то знать?


> Чтобы найти тяжелые инструкции в лупах и на что-то заменить для оптимизации. Чтобы не пиздеть хуйню про то, что скорость исполнения инструкции зависит от её размера и т.д.


Дополню - в мире реальной разработки, а не каких-то нуфань, нормальный сишник умеет читать целевой ассемблер и пользоваться листингами из gdb/perf/..., часто разбирается в архитектуре ос и железки, различных интерфейсах и протоколах. Я вам вообще советую посмотреть чем люди в отрасли занимаются и что им нужно знать.
272 1582388
>>82312
О, работает, классно. Только локаль все равно надо переключать, и везде L дописывать. Спасибо.
273 1582399
>>82376

>привел пример игры -- не аргумент


>привел пример винды -- не аргумент


>>вот моя сортировка ёлочкой. -- неотразимый аргумент


Повторяю в последний раз. Своими маняфонтазиями можешь подтереться. Я живу в реальном мире реальных программ, чужих и своих собственных. Маняпарашные олимпиадные высеры ни на что не годные можешь засунуть себе куда следует.
274 1582415
Вот кто в треде обсуждает досы, регистры, разрядности скажите, аноны, сколько вам лет? Это для просот для интереса моего личного.
275 1582418
>>81228
Си более сделан под написание драйверов и написания всяких прошивок для микрух. На крестах лучше софт прикладной пилить.
276 1582423
>>82399
Речь шла про возможность/не возможность написания. Nouveau есть? Есть. Вот и заткнись и попытайся это осмыслить, тупица. Мне плевать на производительность этого драйвера или популярность. Речь шла про возможность, ало. А ты уходишь от обсуждения куда-то в сторону.
277 1582425
>>81228
Драйверы даже на Lua пишут. И что с того?
sage 278 1582438
>>82139
Ну и что дальше то? Юзай юникод и не парься. Ничего плохого в юникоде не вижу.
279 1582439
>>82139

> И вообще, просто спроси себя. Почему в 2020 году нет например веб-страниц в KOI-8


Есть. Вот тебе актуальное руководство: https://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/
sage 280 1582441
>>81154

> Пишут и на rust, и на go даже.


>>82425

> Драйверы даже на Lua пишут


Толстота какая, ой толстотаааа. На крестах их пишут с использованием последних стандартов. На сях разве что в свое удовольствие.
sage 282 1582446
>>82443

> Драйвер работает в пространстве пользователя


> Не винда


> Унылые врапперы натив кода на js/lua


Не позорился бы...
283 1582447
>>82446
И что? Это исследование всё-таки.

> Не винда


Винда распространена лишь на десктопах. Все остальные ниши занял линукс. На андроид смартфонах, роутерах, серверах, тонких клиентах и суперкомпьютерах стоит он. Даже в Microsoft Azure самой популярной ОС стал линукс.
284 1582451
>>82447
Винда распространена на компьютерах, а остальные устройства могут хоть на манной каше работать , это никого не ебет, кроме рабочих их обслуживающих.
285 1582491
Хуйли вы тут срач устроили?
286 1582520
>>82491
Лучшее, что может происходить тут. Не про ноуты же.
image.png94 Кб, 784x766
sage 287 1582629
Напоминаю.
288 1582631
>>82629

Вин
289 1582691
Есть те, кто пробовал пилить бота для дрискода? Вызывали какие-то сложности?
sage 290 1582693
>>82691
Ты точно тредом не ошибся?
291 1582714
>>82629
вголос
292 1582755
>>72472
скачал. Как в ней запустить прогу? написал хэловорд как в книге и как выполнить?
293 1582792
Ананасы, а сейчас везде, где серьезно применяется Си, актуальна конвенция длины строк до 79? Или 120 норм бывает? Я понимаю, если завод какой-то, где круглосуточно работает терминал с текстовым движком прямо при кинескопе, и поменять некогда, но каким образом то, что старый код того же Пинуса написан с этим ограничением, обуславливает желательность соблюдения того же ограничения в соседнем коде, закоммиченом в 21-м веке? Чтоб бэкслеш-переносы в макросах под одну линеечку всегда были? Просто потому что историческая практика показывает, что даже если ни одна из десятков возможных причин не является очевидной, лучше на всякий случай делать, как принято? Или чтоб в условиях войны, когда нет времени прожать Win+^ после Ctrl+Alt+T, весь код красиво печатался в окне псевдотерминала стандартного размера? Или доля членов сообщества сидит на WinNT/2000/XP и любит AltEnter-иться в 720x400?
294 1582798
>>82792

>Или чтоб в условиях войны, когда нет времени прожать Win+^ после Ctrl+Alt+T, весь код красиво печатался в окне псевдотерминала стандартного размера? Или доля членов сообщества сидит на WinNT/2000/XP и любит AltEnter-иться в 720x400?


Про формат бумаги а4 что нибудь слышал?
295 1582803
>>82792
Спрашиваю, потому что загрузили функционалОЧКОй головного мозга с 8-ширинными табами вместо 4 пробелов для отступов, и мне понравилось. Охуенный бескомпромиссный таб, который уверенно уносит вложенный блок в стратосферу, и не надо ничего мудрить, чтоб с содержимое фигурных скобок визуально отделить от содержимого круглых. Хоть и униформный стиль унылое говно в сравнении с моим божественным авторским. Хотя, если не косплеить функциАНАЛку в плане вложенных выражений, а объявлять локальные имена здорового человека, то должно хватить, но все же... Есть соблазн оформить поразмашистей. Как-то плосковато выглядит код, размотанный в высоту.
296 1582805
>>82798
Ух бля, а ведь точно) Я даже сам по рофлу распечатывал свои велосипеды на стену и думал "хорошо, что 79 соблюдаю". Я так понял, отступы между токенами тоже от ориентации на черно-белый печатный вариант, типа, чтоб и без подсветки читалось. Этим я сам вдохновился :syntax off сделать и писать krasivo.
297 1582816
>>82755
Запускаешь poide.exe, нажимает build (это нужно сделать один раз при первом запуске), нажимаешь в том же окне close.
У тебя открывается первая картинка. Нажимаешь создать новый проект, выбираешь win32 или win64 console program, снизу выбираешь название и папку для сохранения. У тебя справа появляется картинка 2. Нажимаешь file-new-source code, пишешь туда "int main(){printf("Allo\n"); return 12;}", нажимаешь ctrl+s, указываешь имя и когда оно спрашивает, говоришь да, добавить к текущему проекту. Потом нажимаешь кнопку с третьего пика. Всё, программа пошла (по идее).
298 1582906
>>82693
Будто нельзя на Си писать ботов.
изображение.png2 Кб, 476x45
299 1582927
Можно ли заставить препроцессор не просто подставить DELAY_OVF, а посчитать число заранее, и подставлять его? Пока писал, задумался, а оптимизация компилятора это наверное сама делает и я дебил. Если возможно, то как? Код для атмеги, не хочу, чтобы она сама константы всякие считала.
300 1582950
>>82927
constexpr в c++ чтобы быть точно уверенным. Хотя если f_cpu тоже макрос то по идее со включенной оптимизацией должно при компиляции посчитать.
301 1582957
Кто-нибудь знает как работает система антиплагиата? Сомневаюсь что она просто символы забивает и смотрит совпадения, думаю там мало просто изменить код символа, она наверное как-то фотографически снимает содержимое документа, а потом уже переводит его в свой текст и гонит в поисковик.
302 1582967
Анчоусы, молю помогите.

Нужно чтобы после d шла . точка и пробел и далее уже шли звёздочки.

У меня почему-то пробел есть, а точки нету. Ну я предполагаю видимо что программа эту точку сжирает как относящаюся к %d смотрел какие там обозначения у точки нигде не сказано как её отделять, что посоветуете?
303 1582979
>>82967

>что посоветуете?


Поменять % и d местами во второй строке.
304 1582981
>>82979
блин, вот я сказочный долбаёб. я даже не заметил что у меня вместо числа d печатается. устал просто. спасибо, анон. извини за глупый вопрос.
305 1583043
>>82950

> если f_cpu тоже макрос


Да. Ладно, спасибо. Если само не оптимизируется, то в более сложных проектах я об этом узнаю наверное.
306 1583049
>>82927
Либо я долбоеб, либо ты хуйню спрашиваешь, все что может посчитаться заранее - посчитается.

>Код для атмеги, не хочу, чтобы она сама константы всякие считала.


Так хочешь или не хочешь?

Умножив в атмеге что либо на тысячу, можно случайно охуеть.
307 1583112
>>83043
Само собой не оптимизируется, если высокий уровень рекурсии. Чтобы этого избежать, надо явно указывать компилятору, что константа должна быть вычислена на стадии компиляции.
308 1583135
>>82967
Это старая студия или в си всё еще переменные объявляют в начале функции как в паскале?
309 1583150
>>82967
Ну ты даешь, а до такого додуматься слабо?
printf("%d", i); printf(". ");
310 1583173
>>82816
Ого, я удивлен. До этого меня только посылали нахер с такими вопросами и желали смерти, а ты реально подсказал. Спасибо, Анон
311 1583177
>>83173
А я не удивлен, что куколдов полон тред. Анон, ты так всю жизнь будешь осваивать инструменты "где зеленая кнопочка, чтоб заработало"? Почитай, что такое компилятор, что такое линкер, что такой аргументы параметры запуска, чтоб входные и выходные файлы задать, и все сразу встанет на свои места.
312 1583194
>>83177
Бесполезно, это образ мысли (тупой бабы), к сожалению и у мужчин присутствует. Тут ничего не поделаешь, родился уродом - не виноват. Плохо когда их кормят как тот уёбок выше, из за чего они смелеют и засирают всё вокруг своей тупостью.
313 1583306
>>83135
можно и не вначале вроде бы. студия 2019-го года.

>>83150
да я уже понял что проебался. даже в вопросительном посте я правильно написал, просто от невнимательности проебался
Capture.JPG17 Кб, 778x64
314 1583500
>>70501 (OP)
Аноны, помогите, пожалуйста. Решите эту задачу. Я не понимаю как написать эту программу. Допустил "aabb" вот зачислит на счётчик одну а, потом как проверить что вторая а уже есть и её нужно зачислить к первой?

Скиньте, код готовый, молю.
315 1583581
>>83500
https://ideone.com/Oczx4T
Вот примерно такое, да? Только это текстовая гистограмма.
316 1583605
>>83500
Мое корявое решение с горизонтальной и вертикальной гистограммой сразу - https://ideone.com/Mckxuk
Ну а вообще ты ж мог просто погуглить k&r 1-14 solution.
317 1583663
>>83605
спасибо, не знал. буду гуглить.

>>83581
ну мне бы конкретно этой задачи, но всё равно спасибо.
318 1583695
>>83663
Символы не числа - не вижу смысла делать графическую гистограмму, потому что символы e и d ничуть не ближе, чем e и Z - они все в равной степени ортогональны и смысл гистограммы теряется. Если бы это было распределение слов по длинам, тогда можно, но для разных символов это просто шиза, где столбцы можно перемешать случайным образом.
Да и графическая гистограмма в текстовом интерфейсе - сомнительная штука.
319 1583701
>>83695
я тоже не понял этой задачи короче, странная она, анон.

не вижу смысла в гистграме по символам abcd только по введёным.

ну и символы это числа, любой char можно печатать как цисло.
320 1583803
>>83695

>>Задача: Сделать гистограмму


>Не вижу смысла


Не вижу смысла в существовании таких "погромистов". Иди на печку спи, Ванька-Дурак.
321 1583862
>>83500
Зачем проверять наличие? Память не лопнет, если сделаешь массив на 256 интов и заполнишь нулями. А потом распечатываешь

>AAAAAAAAAAAAAAAAAAAAAAAAA


>BBBB


>DDDDDDDDDD


(просто пропускаешь те, где 0)
Делов-то
322 1583864
>>83500
char - это число, если что. Его можно использовать, как индекс.
324 1583911
>>83862
>>83864
>>83871
спасибо, аноны разобрался. надо просто символы как числа читать. просто я только на питоне погромировал и для такого ньюфани как я некоторые аспекты крайне непонятны бывают.
325 1584135
Никогда не обращайтесь в школу портнова, жидовский пидорас хитровыебанно всё построил. Не буду вдаваться в детали и пилит сторе, но скажу вам что вы соснёте на его школе, с тем же успехом даже лучше можно самостоятельно выучиться. Его бумажка силы вообще никакой не имеет, hrы про портнов скул не знают. А если вы будете чем-то недовольны то он скажет "ну ета ты сам виноват ты просто хуёвый человек у меня даже домохозяйки из коробки устраиваются".
Что угодно только не несите деньги этому жиду.
326 1584149
>>84135
Бля не в тот тред отправил, извините.
327 1584283
Какие есть книжки/материалы по вопросам, которые часто встречаются на собседованиях? Ну типо что будет лежать в переменной A, если uint8 A = 344;
Про разное побитовое говно и прочие неприятные вещи, про которые часто не знаешь как ответить?
328 1584289
>>84283
в переменной А при любом раскладе будет число лежать. вот что бы я ответил.
329 1584484
>>84283
Для начала, нахуй пошел. Учись читать русский язык и находить правильные треды для своих тупых вопросов.
330 1584625
Поясните, почему в си не стали добавлять динамические массивы из коробки? Например определение char arr[50] в ассемблере будет выглядеть sub rsp, 50. Так почему нельзя определить char arr[N], где N неизвестно при компиляции. В ассемблер можно просто преобразовать как sub rsp, N.
331 1584632
>>84625

Ну жирно же.
332 1584633
>>84632
Что жирного? Объясни, что мешает выделить на стеке произвольное( в пределах размера стека) число? Rsp такой же регистр как и остальные, и он поддерживает операции вычитания с другими регистрами.
333 1584634
>>84633
Жирослав, уходи
334 1584636
>>84634
Нет ты
335 1584637
>>84633

>Объясни, что мешает выделить на стеке произвольное( в пределах размера стека) число? Rsp такой же регистр как и остальные, и он поддерживает операции вычитания с другими регистрами.



https://ru.wikipedia.org/wiki/Защищённый_режим
336 1584640
>>84637
В твой статье ни слова про стек нет.
337 1584642
>>84640

Ну так его действительно нет.

Ты же сам ответил на часть своего вопроса:

> Rsp такой же регистр как и остальные, и он поддерживает операции вычитания с другими регистрами.

338 1584648
>>84642
И как это конфликтует с защищённым режимом? В нем запрещены операции вычитания или что?
339 1584655
>>84648

В нем запрещены обращения к несуществующим страницам.
340 1584665
>>84655
Охуеть, а кто сказать что я собираюсь обращаться к несуществующей странице? Если ты напишеш char arr[100000000] и обратился к 9999999 элементу, то тоже скорее всего обратился к несуществующей странице, но это же не запрещено самим языком.
341 1584713
>>84625>>84633

>почему нельзя определить char arr[N], где N неизвестно при компиляции


Попробовать пробовал?
https://ideone.com/hy1FMJ
Даже предупреждений нет.
image.png16 Кб, 426x270
342 1584759
>>84713
В visual studio есть
343 1584765
>>84625
>>84633
Есть же alloca(). В чем проблема?
344 1584769
>>84765
Это

1) сторонняя функция, пусть и стандартной библиотеки

2) Выделяет в куче

а нужно чтобы

1) прямо вот кейворд встроен в синтаксис языка.

2) выделял на стеке.
345 1584783
>>84759
В c99 VLA по стандарту вроде как поддерживается. Если студия умеет в c99, то довольно странно, если они искусственно вырезают эту возможность в c11 - ведь внутри компилятора уже есть нужная возможность. Не знал, это довольно странно.

И даже если написать:
void test(int a){
int arr[a];
}
То тоже не компилируется?
346 1584784
>>84769

>Выделяет в куче


alloca() выделяет память на стеке.
347 1584794
>>84783
Да тоже самое, я поэтому и думал, что так нельзя делать в си.
348 1584861
>>84794
Нельзя. Эту хрень ввели в последнем стандарте только.
349 1584866
>>84625
Наверное из за sizeof(). Эта функция вроде бы меряет статический размер, а не динамический.
350 1585026

>K&R


>The book is not an introductory programming manual; it assumes some familliarity with basic programming concepts like variables, assignment statements, loops, and functions


Есть у кого-нибудь готовый глоссарий по этим самым basic programming concepts? Или там из контекста будет понятно примерно? Гуглить умею, просто мало ли.
351 1585029
>>84484

>нахуй пошел


Как некультурно

>учись находить правильные треды для своих тупых вопросов


В данном случае я ищу материалы по скользким вопросам в си. Вроде бы тема подходит под этот тред.
352 1585037
>>85026
Алсо, есть несколько вопросов.
1) Стоит ли сразу выставлять march=native и O2 нашёл в гентоо хендбуке, я так пынемаю это для оптимизациии сразу изучать какие есть флаги гцц?
2) Стоит ли выбрать лишь один из стандартов Си и писать только в этом стандарте чтобы в коде не случилась каша из стандартов, или С11 это тот же самый C99 но с дополнительными плюшками и можно на этот счёт не париться?
3) Как компилятор поймёт, на каком стандарте я пишу? Есть ли отдельный флаг для выставления этого вручную, чтобы не полагаться на автоматику? Если есть, то какой?
353 1585041
>>85037
И ещё вопросы: где лежит конфиг ГЦЦ чтобы я мог написать туда понравившиеся мне флаги раз и навсегда чтобы каждый раз их не писать, или мне придётся тупо прописать в баше alias cc="option1 option2..."
А если я буду чужие проекты компилять и там будет make, будет ли вероятность, что кто-то вместо gcc будет использовать cc в мейкфайле, и в итоге вместо обычного гцц будет использоваться гцц с моими напердолеными флагами? С другой стороны, возможно не у всех цц это алиас на гцц, поэтому в мейкфайле просто обязаны писать гцц вместо цц, да и если я напишу в конфиг гцц свои флаги то и на компиляции через мейк это отразиться тоже должно. Компиляция чужих проектов с моими флагами будет чем-то чревата?
Как относитесь к параллельному обучению другим вещам, например емаксом и соответственно елиспу?
Вопросов скорее всего будет много, извиняйте, если ответ уже есть в гугле.
sage 354 1585065
>>84625
Сам не знаю, никаких причин для этого нет.

мимо 7 лет на сях
image.png330 Кб, 535x528
355 1585071
>>84759
Пушто что сишные инструменты о Майкрософта - это тупейшего говна говно, анон, вот зачем меня расстраиваешь лишний раз, когда я наконец в хорошем настроении с работы пришел? А?? Зачем, блядь?!?!?!
bbfd5440829427987cb7437b3686e8a1.jpg53 Кб, 751x600
356 1585322
>>85026
>>85037
>>85041
Отвеитти кто-нибудь на вопросы бажожьда
357 1585419
>>85071
сук реально, они там таки поддерживают уже стандарт 99-го года или до сих пор ANSI с "cамыми важными дополнениями"?
358 1585424
>>84625

В си, в отличие от C++ могут быть динаические массивы, а могут и не быть, но тогда должна быть определена
__STDC_NO_VLA__ The integer constant, intended to indicate that the implementation does not support variable length arrays or variably modified types.

это стандарт С18, 6.10.8.3
359 1585426
>>84866

Для вариабельных массивом sizeof работает в рантаёме а не во время компиляции, читай стандарт.
360 1585428
VLA придумали не для создания массивов в стеке. Заниматься этим — стрелять себе в ногу.
pyzdotski.jpg24 Кб, 342x481
361 1585444
>>85419
я охуел, когда обнаружил, что в 21-м веке в комплекте студии все еще была однопроходщина, не умеющая заглянуть наперед, чтоб посчитать sub rbp, 0x40 по декларациям
362 1585448
>>85428
А для чего же, если VLA - ровно возможность создавать массивы на стеке?
Ты с flexible array members не путаешь?
363 1585453
Я так понимаю, за VLA хуесосят, потому что cc -O0 с одним и тем же кодом в разных контекстах должен обходиться не мудренее макроассемблера? И в этом низкоуровневая незаменимость сишечки? Типа, маш.кодом ты 1 к 1 рассказываешь процу, что его ждет, а Си - не 1 к 1, но вполне фиксированное 1 к 3?
364 1585574
>>85037

> Алсо, есть несколько вопросов.


> 1) Стоит ли сразу выставлять march=native и O2 нашёл в гентоо хендбуке, я так пынемаю это для оптимизациии сразу изучать какие есть флаги гцц?


> 2) Стоит ли выбрать лишь один из стандартов Си и писать только в этом стандарте чтобы в коде не случилась каша из стандартов, или С11 это тот же самый C99 но с дополнительными плюшками и можно на этот счёт не париться?


> 3) Как компилятор поймёт, на каком стандарте я пишу? Есть ли отдельный флаг для выставления этого вручную, чтобы не полагаться на автоматику? Если есть, то какой?


Почему ты такое не можешь загуглить?
1)Зачем? Хеллоуворд долго отрабатывает?
2)C11 не сильно отличается
3)-std=
>>85041
Ты ебобо точно
В makefile'а компелятор задаётся через переменную CC
365 1585615
>>85448

>возможность создавать массивы на стеке


Это побочный эффект, а не назначение. Назначение в том, чтобы можно было создавать модифицируемые типы (typedef ARRAY[n], такого )
Или понятно писать функции для обработки многомерных массивов любого размера (совершенно не обязательно созданных в стеке).

>Ты с flexible array members не путаешь?


Нет.
366 1585624
>>85615

>такого )


такого в С ещё не было)
367 1585629
>>85615
Офигеть, я просто в ахуе. Всегда считал массивы бесполезным барахлом, которым только в школках пичкают. А тут не только массивы, а еще такие мега-выебоны для них наделали. Кому это вообще нужно? Ради кого городят эти навороты?
368 1585635
>>85629

>Ради кого городят эти навороты?


Чтобы школьники сосали волосатые хуи
369 1585740
>>85037

>1)Зачем? Хеллоуворд долго отрабатывает?


А почему бы и не ставить? Разницы по времени компиляции почти нет, на большом проекте и так уже будет понятно что и как ставить. И там он не будет прописывать их в баше каждый раз.
370 1585744
>>70501 (OP)
Анансы, я уже 3 дня пытаюсь запилить код для работы с протоколом с частотой импульсов 8мгц STM8 SWIM на другом микроконтроллере с частотой 80мгц не используя счетчики, DMA и т.п, т.е. чисто читая-записывая в gpio регистры. Я сильно ебанутый?
371 1585756
>>85744

>Я сильно ебанутый?


Да
372 1585801
>>85744
Нахуй ты свим эмулировать пытаешься? Поехавший блядь.
373 1585909
>>85635
>>85629
Не знаю, сарказм ли это, но спрашивал серьезно. Тут есть нормальные программисты или только школьники и олимпиадники с задачками про массивы?

И это еще.
>>85615

>совершенно не обязательно созданных в стеке


Как? Если не ошибаюсь, массивы бывают только на стеке, в куче создать нельзя.
374 1585948
>>85909

>Как? Если не ошибаюсь, массивы бывают только на стеке, в куче создать нельзя.


Выделяешь память, вот тебе и массив.
int (arr)[j][k] = malloc(sizeof arr)
375 1585949
>>85948
Про звёздочки забыл. Ну, по форматированию разберёшься.
sage 376 1585965
>>85909

> Как? Если не ошибаюсь, массивы бывают только на стеке, в куче создать нельзя.


Чел.. Ты первый курс прогуливал?
377 1585971
>>85948
Стек — это просто кусок кучи. А куча — просто глобальный стек для всей машины.
Бля, недавно баловался с ручной аллокацией в расте, это пиздец страшно; UB со всех сторон и только ждёт, чтобы ты что-то неправильно написал.
378 1585973
>>85948
Указатель на массив, и правда. Прохлопал, привык что память выделяется для данных, которые и без массива работают почти как массив.
379 1585979
>>85971
У меня есть смутное подозрение, что ты не разбираешься.
380 1585980
>>85979
Лол. А что не так? Стек — непрерывный кусок памяти с неким количеством байтов. Куча — непрерывный кусок памяти с неким количеством байтов, который делится аллокатором на другие непрерывные куски памяти. Самая главная программа просто выделяет себе всю память с 2 до максимального физического адреса (обычно самый большой, если его можно достигнуть, форбидится, чтобы массивы не оверфловились). Обычно оно всё равботает немного посложнее, но примерно так же. Где я неправ?
381 1585988
>>85980
Это упрощение до бесполезности.
382 1585990
>>85988
Лол. Так где я неправ в этом
>>85971
посте?
383 1585995
>>85990
Как бы тебе объяснить, чтобы сразу понятно было... Ты сравниваешь ракету с подводной лодкой, и говоришь, что они одинаковые, потому что круглые.
384 1586020
>>85801
Мне не эмулировать надо, а иметь возможность прошивать стмку8 с другого мк.
385 1586097
>>86020
Сделай кастомный бутлодер, ебли будет десятикратно меньше.
386 1586100
Ну ебать, вот выделю я себе вектор в куче, а потом буду его делить своим кастомным аллокатором и раздавать эти куски разным частям своей программы. И в чём разница кучи и моего куска кучи, который фактически является стэком?
387 1586113
388 1586117
>>86100

Для начала ты дебил.

https://ru.wikipedia.org/wiki/Стек
389 1586129
>>86100

>куча


>стек


Значения слов выучи.
390 1586139
>>86117

Так, подожди, у вас какя-то хуйня тогда.

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

Какой-то ваш стек не стек.
391 1586142
>>86139

То есть исходя из определение >>86117 анончика

void pizda()
{
int a;//Нельзя использовать, потому что не на вершине стека
int b;
}
392 1586143
>>86139
Бля, считай, что всё, что относится к выполняемой функции - это один элемент стека. Всё равно структуры бесконечно можно загонять в структуры.
И тогда по твоей же логике, если я положу структуру на стек, то смогу обратиться только к её последнему элементу, и то если компилятор гарантирует порядок.
393 1586145
>>86143

Ну то есть понятно ,стек не стек, раз с него можно по несколько элементов брать.

То есть стек от кучи отличается тем что в стеке запретили совсем свободно ко всем элементам обращаться, только по несколько штук с конца?
394 1586149
>>86145
Ну то есть понятно, куча не куча, а куча говна.
Да ты заебал, хуле сравниваешь так ебануто
395 1586167
>>86097
кастомный лоадер придется на заводе прошивать что не особо важно, но все же, да и займет он как минимум 500байт флешки, а на самой стмке всего лишь 8кб.
396 1586197
1. Наверно можно меньше, но хуй знает.
2. Ну не выебывайся, хочешь сказать у тебя ПЗУ 1 в 1 нынче? Пиздишь же. А если не пиздишь, мб постарше возьмешь? Десять центов, зато потом не будешь волосы на жопе рвать, если че дописать придется.
397 1586198
>>86167
Или ты некий конвеерный программатор ржаешь?
398 1586203
А ведь в Си не обязательно писать return:

type bar(...) {
...
return val;
}
type foo(...) {
...
return bar(...); // вот здесь
}

ведь return уже есть внутри bar? Ну, в смысле, rax никуда не убежит? Ясен хуй, что в свич-кейсах более функционально будет смотреться return f1(); чем f1(); break;, но все же...
399 1586205
блин, хрень какую-то предлагаю, сейчас понял
Capture.JPG16 Кб, 270x183
400 1586320
Зачем в СИ писать функцию перед main. Что это даёт?
401 1586334
>>86320
Что бы вставить вызов функции и проверить правомерность этой операции, компилятор, должен о ней знать (что возвращает, что принимает). А читает он файл сверху вниз.

Соответственно в объявлении он узнает, что есть некая хуйня, с такими то параметрами и может подставить ее вызов.

Вместо ссылки(адреса начала) функции, там пока находится просто символ(некая уникальная хуйня, явно указывающая на эту функцию).
Позже, некая хуйня (линкер наверное) заменяет эти символы на непосредственно адреса тел.

Как то так, могу пиздеть.
Вообще, применительно к одному файлу, как я понимаю это такой пережиток, смысл этой хуйни раскрывается в многофайловых программах.
402 1586336
>>86334
а я щас убрал эту функцию и программа ввсё равно запустилась. ну спасибо, я прочитаю об этом в книжке официальной тогда. мне просот лень читать и я тупо смотрю на синтаксис года и делаю оттуда упражнения.
403 1586385
>>86336
Может от стандарта зависит. Мне вот мой переменные только в начале функций разрешает объявлять вообще.
404 1586395
>>86320
googleSearchQuery ("C function prototypes");
405 1586482
сап аноны. вкатываюсь в макакинг, решил начать с чистого C. есть ли какие нибудь годные видеоматериалы по поводу си, на русском языке?
406 1586495
>>86482
Видеоматериалы в основном по углубленным темам, начни с книжек.
407 1586507
>>86495
понятно, спасибо. я уже начал читать, ту что самая первая в шапке.
408 1586523
>>86198
Не совсем, есть пользовательский девайс с конфигурацией стм8+более мощный мк, и более мощный мк должен иметь возможность периодически обновлять прошивку стм8 (короче говоря ОТА-апдейт). На мощном мк памяти достаточно много, а вот на стм8 только 8кбайт, при этом здесь должно крутиться довольно много функционала. По-этому я и пытаюсь родить swim прошивальщик дабы сэкономить на памяти и заодно на цене, ибо существуют стм8 со встроенным загрузчиком, но они дороже.
409 1586526
>>86336
добрый компилятор позволил тебе сделать это. Злой --std=c99 -pedantic -Werror не позволит.
410 1586565
>>86482
был на сайте какого-то университета thinking in C брюса Эккеля. Он его рекомендует перед вкатом в жаббу.Поищи короч. А так если совсем бревно возьми либа зеда шоу либо стефана кочана либо Стивена Прату.
На случай, если Керниган-Ритчи для тебя слишком заборист.
412 1586572
>>86100
Пиздец, даже не верится что такой дебил растоблядок тупорылый сидит итт. А потом вот такие чудилы и кукарекают про уб и баги. Поколение изкоробочников мудаков.
413 1586582
>>86523
Там экономия будет смешная. Больше шишок набьешь ради ничего.
STM8 вообще хитровыебанная порода, я вот так поэкономил и уебался на то, что оно не умеет в асинхронную запись еепрома и у меня устройство на 3мс встает нахуй все.

Не делай глупостей, не фаршируй память МК под завязку без веских причин. Оно отличается на 20 центов (только что проверил).
А я думаю что у тебя счет на устройства - единицы тысяч, иначе на 4ch бы писал.
Вот и стоит полмесяца ебли с SWIM, нескольких сотен баксов? Он еще в добавок окажется каким кривым и не дай бог придется отзыв делать.

PS а че свим мастера не дали STMы? В поддержку им писал? По моему опыту, доебом саппорта можно много чего выбить.
414 1586695
>>86526
>>86526
понял, спасибо.
415 1586697
>>86395

>C function prototypes"


загуглил, спасибо. ну я это знал, что нужно объявление но почему-то в си не догадался. хотя на питоне точно также функции вначале объявляются. чтобы я без вас делал, анчоусы.
416 1586821
>>86582

>что оно не умеет в асинхронную запись еепрома и у меня устройство на 3мс встает нахуй все.


версии с поддержкой RWW умеют. Да и вроде даже без RWW, но с помощью block programming оно не должно блочиться.

>Не делай глупостей, не фаршируй память МК под завязку без веских причин.


причины есть куча легаси говна как на софтварном, так а на железном уровне, которое не так просто порешать.

>Оно отличается на 20 центов (только что проверил). А я думаю что у тебя счет на устройства - единицы тысяч, иначе на 4ch бы писал.


В том и дело, что устройств - миллионы, каждая копейка на счету но я всего лишь нанятый прогромист если что :3

>Он еще в добавок окажется каким кривым и не дай бог придется отзыв делать.


Вот это скорее всего будет главным аргументом отказаться от идеи со SWIM и таки использовать простенький юарт бутлоадер и таки вместить все говно на флешке.

Но попробовать стоило, и как минимум некоторые результаты есть.
417 1586976
>>86821
Умеют,

>с помощью block programming


Блочится, увы. Может конечно и нет, но легче написать ультракостыль, чем разобраться в STмовской документации.

>устройств - миллионы


>@


>спрашивает советы на 2ch


Уверен, что все правильно делаешь?

>куча легаси говна


Всегда казалось, что в одной серии совместимость сохраняется (снизу вверх). А 8кб это что то младшее 103, а есть 105 с большим флешом в тех же корпусах.
418 1586981
>>86976

>Уверен, что все правильно делаешь?


Здесь все его друзья.
изображение.png8 Кб, 581x241
419 1587332
Поцоны, что скажите на счёт кода на пике?

Контекст: Код микрухи для проверки работоспособности внешней SRAM. Коллега на работе, сделал плату с микросхемами памяти и написал приблизительно то, что на пике для её проверки. Этот кусок кода крутится в цикле и проходит по всем адресам этой SRAM. Говорит, что память рабочая. Так вот у меня подозрение , что компилятор просто оптимизировал до temp = data и забил хуй на всё остальное. Я написал две функции для чтения и записи, чтобы компилятор не наебал меня с оптимизацией, и это показало, что память работает хуёво. Хотя я и сам мог наебаться когда писал их.

Плата, кстати, выглядит очень плохо. Вся грязная и с подтёками припоя. Я не удивлюсь, если там, что-то замкнуло
420 1587336
>>87332
Говно тупого говна.
Впрочем, что взять с /зк
421 1587347
>>87332
Почему это условие вообще существует? Там всегда будет temp == data. Ты что ебанутый?
422 1587353
>>87347
А это тупее даже чем >>87332
Чан мочи не перестает удивлять.
423 1587367
>>87332
То, что я не могу прочитать мысль написанного - значит я тупой?
424 1587368
>>87367
В коде. Фикс.
image.png415 Кб, 700x597
425 1587493
Итак, аноны, сейчас вы мне нароллите домашний проект по объему работы где-то на пару недель. Условия:
. язык Си
. без GUI
. жестко под Linux
Наверняка затянется, но обязательно отчитаюсь в треде, если осилю. Договорились?
426 1587518
>>87493

>Договорились?


нетъ
427 1587632
>>87493
systemd, не ссущий пользователю на лицо
428 1587636
>>87493
фикс для X Window system, чтобы экран на этапе загрузки ОС не мерцал, как будто он ща помрёт.
Ну вот при загрузке винды он так стремно не моргает.
429 1587640
>>87493
конфигуратор ядра Linux для его пересборки под имеющееся железо.
То есть смотрит, какое железо есть, делает конфиг и далееделает бекап старого ядра, make cleardepend, make install для нового
430 1587642
>>87640
ролл
431 1587643
>>87640
ролл
makefile.pnd.png16 Кб, 800x142
432 1587644
>>87640
ролл
433 1587751
>>87347
Если память битая, то по address не запишется data, значит будут отличаться.
434 1587763
>>87493
ahk ток для луникса
435 1587774
>>87493
Рогалик
436 1587779
>>86145
На стеке выделяются фреймы функций в порядке FIFO, а не переменные.
437 1587780
>>87644
Что за среда? GUI редактор?
438 1587781
>>87780
Gnome builder, я думаю.
439 1587900
>>87781
какая среда блин? gedit. еще юзаю pluma в mate DE на работе.
FreeBSD
440 1587905
>>87900
Простите, я просто увидел гном, и решил, что это гномовкий ide.
441 1587957
>>87905
в глаза не видел. из IDE видел студию 2008 (годная), QT, Netbeans, MonoDevelop
442 1588039
>>87900

Братан, братишка, братушечка.
Тоже сижу на MATE
443 1588068
>>87353
Так проверь нормально адрес на валидность, а не этим костылем, лол. Не верю что в микропердолинге контроллеров все так плохо.

>>87353
Обоснуй. Это объективно говнокод нерабочий.
444 1588934
Что на русском почитать?
445 1589030
>>88934
Достоевский, Толстой
446 1589186
>>88039
молодца.
чем занимаешься? в чем кодишь? что кодишь?
какую тему юзаешь для подсветки кода?
447 1589189
>>70501 (OP)
А где найти треды с первого по сороквосьмой?
448 1589196
>>89186

всяким занимаюсь
конкретно на Си - мультимедией и сетью
на Си пишу в Netbeans 8.2
а вообще в vs code на дефолтной теме
так-то хотел бы перекатиться на jetbrains но дорохо
cunleashed.png637 Кб, 711x819
449 1589219
>>89196
крутота.а как вкатился? что изучал? ну типа порядок какой?
450 1589241
>>89219

Будешь смеяться, но книжку с твоего пика.
А до этого к-н-р.
Как вкатился - просто взял и вкатился и по работе внезапно понадобился Си. И я такой: ну ок.
451 1589386
>>87763
Для этого иксы надо изучить? Заинтересовало.
452 1589455
>>87493
Патч для иксов, чтобы setxkbmap при -option grp:rctrl_toggle переключал раскладку не на нажатие, а когда клавишу отпустили. Т.е. я нажал на правый контрол и не отпуская нажимаю на T - срабатывает Ctrl+T и в браузере открывается вкладка, а если нажал и отпустил, то переключил раскладку.
https://habr.com/ru/post/87408/ правда этот патч уже написали, пиздец, ну тогда даже не знаю...
453 1589456
>>89386
Сомнительно. Сейчас всё через libinput, а он скорее про wayland, чем про иксы.
454 1589486
>>77264
Зачем инклудить? Почему не линковать?
455 1589985
Назрела тут необходимость жопа окончательно сгорела от неумных релизеров сделать переименовалку файлов, дополняющую номера в именах файлов ведущими нулями. Я конечно сделал, перебирая в цикле по буковке, но вдруг есть более "современный" что ли способ? Посоветуйте кто грамотный.
456 1589987
>>89985
Можно регулярные выражения использовать: ищешь все \d+ и меняешь их

Но цикл тоже норм.
457 1589998
>>89985

>перебирая в цикле по буковке


Не понял, какой буковке. Имена файлов известны и можно их сгенерировать одним циклом, или ты получаешь список файлов, извлекаешь из него номер и подменяешь их на имена с нулями?
Тебе нужен %05d вместо %5d или что?
458 1590025
>>89987
Спасибо. Я сначала тоже подумал про регексы, но потом вроде нагуглил, что они не умеют проверять длину результата. В общем, не нашел как ими сделать дополнение нулями до нужной длины.
Но теперь снова вдохновился и за несколько часов ковыряния в пастах со stack overflow нашел как выцепить набор найденных подстрок и их позиции. С библиотечной replace() получилось компактно и дуракобезопасно, даже новая фича далась нахаляву - сокращение лишних имеющихся нулей, а не только дополнение имеющегося. Между прочим, видел только одну программу с функцией дополнения номеров - ReNamer неудобная для меня, и она сокращать не умеет, только добавлять.

>>89998
Имена неизвестны, могут быть любые. Суть в том, чтобы пофиксить номера в именах файлов для нормальной сортировки. Имена могут быть любыми и номера где угодно и сколько угодно. Нужно просто в каждом имени найти номера и дополнить до заданного размера нулями. Для этого в обратном цикле (с конца) печатается каждый символ как есть, но когда наступает конец (начало) числа (последовательности цифр), при необходимости допечатывалось нужное количество нулей.
459 1590372
>>89985
Почему на С? Это же задача по шелл.
460 1590433
>>89030

>Толстой


Которого?
461 1590445
>>90433
Татьяну.
462 1590455
>>90372
Не, скрипты это рак, они где-то есть, где-то нет, где-то заблокированы политиками, всякие питоны нужно дополнительно устанавливать. Нормальной программе, которая просто работает, альтернатив нет.
Еще, хотя программа для запуска командной строкой, это вовсе не значит что для консоли. Если отрабатывает нормально, ничего не должно происходить, а консоль выскакивает в любом случае, моргая перед глазами, это тупо. Консоль не может в юникод, а файлы юникодные, ну и гуй с удобным списком сообщений если необходимо, и может еще чем, всяко лучше текстовых костылей из прошлого века. Это же полноценное приложение с ясной и полезной функцией, а не одноразовое действие над файлами.
463 1590726
>>90455
Шиндовс что-ли? А на что тебе Total Commander? FAR тоже умеет, да и на никсах есть mc.
464 1590823
Анон, посоветуй литературу для вкатывающихся из других языков. Желательно, чтобы было кратко. Хочу поскорее к практике приступить.
465 1590912
Поставил на винду clang через chocolate, при попытке скомпилить простой код, пишет, что не может найти stdio.h. Я так понял что стд либа не идет в комплекте с clang? Где ее взять? Мне vs ставить?
466 1590914
>>90912
Компилируй в шланге через Cygwin, у меня друг так делает с g++
467 1590919
>>90914
Алсо, я его решил затроллить и посоветовал ему писать код в EMACS, потом посоветовал Vim, теперь он пишет код в виме, и компилирует в цугвине, пиздец в общем. Троллинг в итоге пошёл в обратную сторону, потому что в итоге я нихуя не начал ничего делать.
Пойду скачаю K&R.
468 1590983
>>90919

>затроллить


Ничо ты с ним жоско)0)
469 1591184
>>90914
C++Builder шлангом компилит.
470 1591241
>>90823
Дейтелы Си для программистов.
471 1591246
>>90823

Проблема сей в том что это не ООП, это процедурный язык со структурками и макропетушнёй во все поля и там разные задачи пишутся по специфике - ядро линуха и его драйвера пишется одним стилем, софт под гнум - другим, у микроконтроллеров вообще свой диалект с хакнутым языком и вшитыми макросами для прерываний.
Untitled.png14 Кб, 1687x156
472 1591253
>>90914

>Компилируй в шланге через Cygwin


Все еще не может найти stdio.h.
473 1591267
>>91253
Скачал vs, все скомпилилось.
474 1591268
>>91267
велком ту погроммирование на винде
475 1591272
>>90912

>Поставил на винду clang через chocolate, при попытке скомпилить простой код, пишет, что не может найти stdio.h. Я так понял что стд либа не идет в комплекте с clang? Где ее взять? Мне vs ставить?



MSYS2
S
Y
S
2
476 1591315
>>91253

>пик


Ахахах! Это пердоговно по дефолту ищет вижуал студию вместо собственных либ. Уже видел подобную хуйню когда ковырялся с их компиляторами и мейками. То ли баг, то ли тупые и баг. Проигрыш с подливой.
477 1591347
>>91315

У них там какой-то договорнячок был, типа мс помогает писать ллвм, ллвм со шлангом в благодарность в версии на винду поставляется только в кастрированном виде и без вижуалстудии не работает.
image.png13 Кб, 776x59
478 1591418
Помогите, молю. 31-ая страница в K&R я не понимаю это задание, что они хотят. Задание 1-16
479 1591436
>>91347
Но я вроде с обычным gcc делал. Уже подзабыл, но был готовый проект с билд-скриптом, который проверяет наличие либ, вываливает кучу тестов компилячтора на фичи, ну всё это, обычное дело, и вот там оно лезло в студию и писало про зафейленные фичи, что разумеется, ведь студия не gcc.
480 1591472
>>91436
Если ты делал с gcc, а потом пытался компилировать clangом, то, наверное, не очень удивительно, что он не мог библиотеки найти.
481 1591711
>>91246

>не ооп


Как же вы звебали с этой мантрой, необучаемые.
482 1591739
А визуалка, что платная? У меня пишет что последний триальный день остался... Он мне обрежет доступ к комплиятору да?
483 1591758
>>91246
ООП - выкидыш спидозной обезьяны.
Классы, шаблоны - божественная благодать.
484 1591769
>>91758
Классы разве не части ООН?
485 1591770
>>91758
>>91769

Тьфу блядь. Классы разве не часть ООП? всё время как ооп вижу думаю ООН
486 1591846
Как лучше писать.

void main(void){
""
}

или просто
main(){
""
}

у мен компилятор без void пропускает, но написано что если функция не берёт аргументов или не возвращает ничего нужно указывать void.
487 1591852
>>91846
main должна возвращать в окружение 0, если завершилась успешно.
void писать стоит.
488 1591855
>>91852
а я пишу main без return'а, но она всё равно возвращает 0. void тоже не ставлю, видимо комплиятор сам что-то там допилиивает. пишу на визуалке если что.
489 1591859
>>91855
Да, компиляторы умеют подтирать слюнки за совсем уж хлебушками, но ты хочешь быть таким хлебушком?
490 1592017
>>91859

зачем вот ты просто так снихуя пишешь non-compliant code?

дали им

#include <stdlib.h>
int main(void){
return EXIT_SUCCESS;
}

нет, блядь, говно жрут
unixtools.png247 Кб, 469x602
491 1592025
>>89985
>>90372

двачую шелл-Господина.
Cygwin под Окнами, #!/bin/sh под юниксами.
И работа с файлами и регексы и арифметика и циклы.
Чекни пикрил или Юникс - универсальная среда программирования от Кернигана.
Шелл он везде встроен из коробки. Стандартное средство, а не ебля с файлами.
492 1592026
>>91769
Классы это продвинутые структуры. Сам понимаешь, си без структур как хирург без рук. А классы еще круче структур, что делает язык в разы лучше, а шаблоны классов еще лучше.

ООП же это когда код программы оборачивают в иерархию классов. Вместо кода получается дрисня из оберток для оберток, интерфейсов к интерфейсам и фабрик фабрик.
493 1592030
>>92026
вообще мне кажется, си с шаблонами, неймспейсами (но без классов!) был бы просто идеальным языком
494 1592032
>>92030
Пиши на плюсах не используя классов, кто тебе мешает?
495 1592035
>>92032
ну как, там нужно целую экосистему городить,
в c++ всё время есть соблазн воспользоваться стандартными контейнерами, и они охуенны, пока тебе не нужно сварганить что-то чуть-чуть сложное. тогда тебе уж нужно блядь, писать классы, с конструкторами копирования, оверлоадить std::move, и, блядь, понеслась пизда по кочкам
496 1592037
>>92035

>ужно блядь, писать классы, с конструкторами копирования, оверлоадить std::move, и, блядь, понеслась пизда по кочкам



Нет, не нужно. Можешь смело использовать сишные структуры в контейнерах без каких-либо дополнительных действий.
497 1592046
>>92035
Это называется безвольный дрон плывущий по течению. Если язык без классов, значит нельзя ими злоупотребить, это хорошо. А если с классами, значит нужно их пихать куда надо и не надо, а это плохо. Сам думать как лучше и применять или не применять по обстоятельствам, дрон не может, только подчиняться. Если дядя сделал в языке классы значит нужно на классах, если не сделал, значит не нужно. Таким лучше всего подойдет анальный язык вроде паскаля, в си же свобода, таким не место.
498 1592150
>>91859
а обязательно делать инициализацию всех переменных\массивов вначале программы? можно в середине программы внезапно инициализировать один массивчик?
499 1592402
>>92150
Ничто не истина, всё дозволено, но смотреть на тебя будут, как на пристукнутого
500 1592404
>>92402
а в чём разница между инициализацией и присвоением значения переменной?
501 1592405
>>92404
Инициализацию ты сделать обязан.
502 1592406
>>92405
да заебал, шиз ёбаный. нахуй ваш тред нихуя не объясняете. смысл от этого программача ёбаного. пойду гуглить всё
503 1592409
>>92406

>хАчУ пейсать вотт тАкий ОбрАЗо, пАчимА таК нИНада АбиСниТЕ!

504 1592413
>>92409
я спросил разницу между объявлением переменной и назначением что в компьютере технически происходит
505 1592421
Аноны, почему так происходит?
506 1592429
>>92421
Твоя "строка" не строка. в чём отличие строки от массива букв?
Capture111.PNG17 Кб, 580x365
507 1592434
>>92429
Я по книге k&r занимаюсь, там такое допустимо. или я что-то не понимаю...
508 1592436
>>92421
Ну и на двойное двойное присваивание люди жалуются, это такой себе стиль. Тем более, что ты c = 0 нигде не используешь после.
509 1592439
>>92434
Функция getline, судя по названию, делает именно строку. А ты строку не делаешь. Ещё раз: в чём отличие строки от массива букв?
510 1592441
>>92439
я не знаю. в чём?
511 1592442
>>92439
она оканчивается "\0"?

а массив нет?
512 1592445
>>92442
Да. Строка заканчивается нулём, имененно так C определяет, где остановиться, например, в printf("%s", l) и других функциях, работающих со строками.
513 1592449
>>92445
Да, я уже проверил спасибо. Только у меня проблема частично ушла. Как сделать так чтобы он не печатал этот символ?
514 1592452
>>92449
я так понимаю эта херня забивает в массив перед '\0' забивает '\n' когда я нажимаю ентер. но я не понимаю почему. я же сделал так чтобы цикл не забивал туда '\n'
515 1592453
>>92449
Перейти на Unix систему.
516 1592454
>>92453
не надо, скажи как проблему решить. решение уровня переустанови винду, купи новую машину.ещё и окажется что на юниксе точно такой же вывод будет.
image.png38 Кб, 1395x162
517 1592455
>>92453
https://en.wikipedia.org/wiki/Newline#Representation
Чтобы ты не думал, что я пошутил.
518 1592456
>>92454

>и окажется что на юниксе точно такой же вывод будет.


>>92455
519 1592458
>>92455
что это за таблица?
520 1592460
>>92458
На ссылку кликни и прочитай.
521 1592464
>>92460
и как мне "\r\n" эти ввести туда?
522 1592465
>>92460
бля я не хочу на эту хуюнту переходить, у меня ноутбук и драйверов под эту порашу нету просто. а вшитое дерьмо убивает кучу функций тачпада, клавы и производительность видеокарты. а сам я их писать не умею (надеюсь что пока что)
523 1592466
>>92464
Ты же в виндоусе разбираешься, а не я.
524 1592475
>>92466
не объяснишь смысл этого задания? >>91418
525 1592498
>>92475
Нужно чтобы программа продолжала считать буквы, даже когда line[MAX] закончился. То есть делаешь, например
line [5]
Потом даёшь ему инпут: sunflower
И программа тебе отвечает
Input length: 9 symbols
Saved: "sunf"
526 1592631
>>92498
спасибо большое. тяжело довольно сформулировано, не мог перевести никак. спасибо за все советы, аноны, продолжай оставаться в треде в будущем. я ещё неоднократно буду тебя заёбывать
527 1592752
>>92631

>тяжело довольно сформулировано



лол
528 1592755
>>92752
Ну, я не очень умный, конечно, но без контекста и я не понял, чего хотят. Мог бы и объяснить ему вчера, если ты сразу разобрался.
529 1592870
>>92755
>>92752
если загуглить эту задачу и решение, то очень много вспылвает вопросов на форумах где люди пишут что не понимают формулировку задания. я уже гуглил просто
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 25 марта 2020 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски