Этого треда уже нет.
Это копия, сохраненная 15 марта 2019 года.

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

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

Пожалуйста, пользуйтесь https://ideone.com/ или 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 (драфт)
- 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://www.iso-9899.info/wiki/Books#Learning_C

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

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

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

- №36: https://arhivach.ng/thread/407257/
- №37: https://arhivach.ng/thread/414099/
- №38: https://arhivach.ng/thread/419611/
2 1339814
Первыйнах1
3 1339821
>>39788 (OP)
Правда, что E1->E2 и (*(E1)).E2 не эквивалентны?
4 1339857
>>39821
Нет, не правда. Стрелочка лишь сахарок для второго выражения. Это если ты не ошибся тредом. У соседей по обыкновению все непросто.
5 1339858
>>39857
Похоже, ошибся тредом ты. Это у соседей явно прописано, что E1->E2 это эквивалент (*(E1)).E2, так что всё просто.
А вот в C со вторым может быть UB, когда с первым его может не быть. Забавно.
6 1339861
>>39858

> А вот в C со вторым может быть UB, когда с первым его может не быть.


Пруф из стандарта или хотя бы пример будет?
7 1339866
>>39861
https://pastebin.com/ARxKm18y ну вот, например 8-я и 9-я строка
Хоть такой каст указателей и доступ к члену несуществующей структуры и сомнителен, вроде считается что так можно.
Однако, в 9-й строке, `°ps` это lvalue а про него сказано
http://port70.net/~nsz/c/c11/n1570.html#6.3.2.1

> An lvalue is an expression (with an object type other than void) that potentially designates an object; if an lvalue does not designate an object when it is evaluated, the behavior is undefined.



объекта типа struct S нет, значит `°ps` — это UB?
8 1339874
>>39866

> доступ к члену несуществующей структуры и сомнителен


По-хорошему так нельзя, потому что типы разные.

> объекта типа struct S нет


Так чего ж ты кастил указатель, если объекта нет? Ты определись, либо кастить можно, и объект есть, либо у тебя все сломалось еще при касте.
9 1339880
>>39874
То есть, нельзя кастить, если объекта нет?
Тогда, например, integer aliasing (разрешение читать int через lvalue типа unsigned int и т.д.) теряет всякий смысл, т.к. по-твоему нельзя кастить указатель на int к указателю на unsigned int.
10 1339890
>>39880

> integer aliasing


Это разрешено явно до сих пор не понимаю, нахуя, как и чтение байтиков инта через указатель на char. В остальных случаях тебе нужны совместимые типы. Структура с интом несовместима. На самом деле в моем мире бегают розовые пони, помахивая -fno-strict-aliasing, поэтому у меня нет никакого UB при чтении интов через структуру. Чего и тебе желаю.
11 1339893
>>39890

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


Лазать через структуру явно разрешено в том же списке http://port70.net/~nsz/c/c11/n1570.html#6.5p7

> An object shall have its stored value accessed only by an lvalue expression that has one of the following types:


> …


> — a type that is the signed or unsigned type corresponding to the effective type of the object,


> …


> — an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or


> — a character type.

12 1339904
>>39893

> an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or


Там просто формулировка говно, смотри сноску, это про алиасинг. Имеется в виду, что int будет алиаситься не только с char или каким-нибудь unsigned интом, но и со структурой, у которой один из членов int или совместим с ней.

Классика. Это UB:
void test(float ∗a, int ∗b) {
∗a = 1.0;
printf("%g\n", ∗a);
∗b = 0;
printf("%g\n", ∗a); // Компилятор может не перечитывать a.
}
float foo;
test(&foo, (int ∗) &foo)

Это нет:
struct s { float x; };
void test(float ∗a, struct s ∗b) {
∗a = 1.0;
printf("%g\n", ∗a);
b->x = 0.0;
printf("%g\n", ∗a); // А вот тут компилятору придется перечитывать a.
}
float foo;
struct s bar;
test(&foo, &bar);
13 1339905
>>39904
Ну так и почему кастить к указателю на unsigned int можно исходя из тех правил, хотя объекта типа unsigned int нет, а кастить к указателю на структуру нельзя?
14 1339911
>>39905

> почему кастить к указателю на unsigned int можно исходя из тех правил


Я уже говорил, что не знаю, почему сделано исключение для signed/unsigned. Вот с char все понятно, это в свое время завезли для memcpy и прочих fwrite. Какие проблемы может решать чтение signed инта через unsigned, я не понимаю. По мне, оно только ломает alias analysis еще больше.
15 1339915
>>39911

>Какие проблемы может решать чтение signed инта через unsigned, я не понимаю.


ПРоблему совместимости со старым кодом
16 1339918
>>39915

> совместимости со старым кодом


Неужели так много говнокода, в котором путаница со знаком у указателей? По мне, так кода, который ломает strict aliasing - гораздо большая куча, которая к тому же продолжает расти. Вон даже целый линукс есть. Но что-то никто не торопится убирать strict aliasing. Зато убрали gets(), убрали олдскульный стиль аргументов у функций, где же тут совместимость?
17 1339949
>>39904
Твой код не демонстрирует доступ через aggregate or union type, т.к. b->x имеет тип float.
Доступ через aggregate or union type это присваивание структур.
18 1340043
Нужно ли исправлять ВСЕ warning'и? Просто мне кажется, все исправить не выйдет, если я хочу сделать то, что я хочу, хотя это вроде как логично...
19 1340249
Как понять это ?

Выражения типа a компилятор заменяет на ☆(a+b), так как выражение симметрично, то с точки зрения компилятора следующие выражения идентичны:
array и i[array], так как будет заменены одинаково: ☆(array+i);
=====
зачем вообще понадобиться может писать i[array]?
20 1340257
>>40249
Потроллить можно.
Незачем, это следствие ассоциативности арифметики указателей, такой небаг языка
21 1340258
>>40043
Неисправляемый ворнинг лучше подавить, чтобы при компиляции новые ворнинги не потерялись в куче старых
22 1340316
>>39949
Ну окей, ∗b = (struct s) { 0.0 }; доволен?

>>40043

> Просто мне кажется, все исправить не выйдет


А ты постарайся. Можно писать даже для шланга с его -Weverything.

>>40258

> Неисправляемый ворнинг лучше подавить


Если уж совсем никак нельзя по-другому, то да, стоит отключить, но лучше локально (#pragma GCC diagnostic push, #pragma GCC diagnostic ignored "-Wshootingyourselfinthefoot", #pragma GCC diagnostic pop или аналоги). Иначе можно проебать реальную проблему в том же файле.
23 1340336
>>40316

> но лучше локально


Я это и имел в виду
24 1340709
Как прочитать размер аллоцированого чанка? Везде вроде пишут, что предшествующий size_t хранит размер. Пытался по всякому прочитать p[-i] память, но там вроде чёто-то нето.
25 1340747
>>40709
man 3 malloc_usable_size
26 1340756
>>40747
Спасибо) но это для Линукса. Я как понял там у Винды всё по другому. Есть функция _msize, но мне интересно как она устроена.
27 1341064
>>40756
Выделяй степень двойки, храни размер сам, не лезь не в свое дело. Ты ведь понимаешь, что оно зависит от реализации - сегодня так, а завтра сломалось?

> у Винды всё по другому


У какой винды? Какой компилятор? Какая версия рантайма? Например, если линковаться с MSVCRT, то перед блоком будет указатель на структуру с информацией.
28 1341187
>>40756
>>41064
Мимокрок на линии.
Читаю Game Engine Black Book: Wolfenstein 3D, ну вот прям от всей души рекомендую.
Хитрые изъебы с памятью в том числе весьма интересны. Я просто дохера часов убил в свое время на эту игрулю, объяснение внутренностей весьма доставляет.
29 1341220
>>41187
Ооо всегда хотел такого рода игру написать.
Где качал книгу?
30 1341257
>>41187

>Хитрые изъебы с памятью


это плохо, в идеале ничего хитрого не должно быть
sage 31 1341259
>>41257

> в идеале


Лол, в идеале у тебя бесконечная память с нулевой латенси и бесконечный проц.
32 1341264
>>41259

>у тебя бесконечная память с нулевой латенси и бесконечный проц


Ну бля, товарищь Тюринг, я больше не хочу с вами ебаться в жопу.
Давай примеры и обоснования, епте.
33 1341269
>>41257
Я неправильно выразился. Скорее не хитрое а элегантное, не напролом.
34 1341272
>>41257
Это ты так ненавязчиво намекнул что знаешь лучше Кармака и Ромеро как управлять памятью?
35 1341273
>>41220
Не помню уже, насколько я знаю прямо на сайте у автора можно скачать pdf.
Если нет, то может быть здесь:
http://mirknig.su/knigi/programming/188694-game-engine-black-book-wolfenstein-3d.html
36 1341274
>>41269

>а элегантное


ну так это другое, инженеры пишущие и оптимизирующие код и смузихлебы с фреймворками
37 1341275
>>41274

>фреймворками


Тогда и фреймворков у них не было, сами писали себе.
38 1341283

>this book has only bit of text and plenty of drawings attempting to describe in great detail the Wolfenstein 3D game engine and its hardware, the IBM PC with an Intel 386 CPU and a VGA graphic card.



Автор маладца, сам Ромеро рецензировал. Я кинул ему 20 баксов, просто за слезы ностальгии.
39 1341286
>>41274

>инженеры пишущие и оптимизирующие код


Инженерам на тот момент было около 23х лет, мне почти в два раза больше, чемпион по проебыванию жизни впустую.
40 1341291
>>41286

>чемпион по проебыванию жизни впустую


Посоревнуйся со мной111
41 1341303
>>41273
Но это 1 эдишн, 2й только за деньги.
42 1341579
Кодю на си уже долгое время, захотелось узнать какой стэк нужно знать чтобы на работу устроиться. Можете подсказать?
43 1341593
>>40257
3["sosu"]
44 1341620
>>41273

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

Степень происходящего пиздеца в современном ёбастрое можно оценить в гитхабе:

https://github.com/CRYTEK/CRYENGINE/tree/release/Code

Сравнить с:

https://github.com/id-Software/Quake-III-Arena
45 1341623
>>41620

>кококо микроархитектурка порешала а неотсасывающий кеш не завезли



самофикс
image.png69 Кб, 1121x493
46 1341640
Что за вопросительный знак в числе?
47 1341645
Где можно узнать инфу по программированию драйверов под windows и unix системы?
sage 48 1341667
>>41640
Опечатка автора. Можешь ему об этом рассказать.
49 1341673
>>41667
А я думал это какие-то древние тайны сишки. Эх, нет романтики.
malloc - Copy (2).JPG39 Кб, 574x302
50 1341675
>>41620
>>41187
Посмотрите на этих эстетов, malloc им недостаточно эффективный.
51 1341682
>>41675
Нихуя себе, это на чем вообще основано то.
52 1341691
>>41620

>датадрочерству


Что ты под этим подразумеваешь?

>write-only пиздец


А в чем смысл write-only структур??
53 1341746
>>41691

>write-only


Я думаю, что это рофл. Зачем они.
54 1341752
>>39814
Мы нахи из народа ноя?
sage 55 1341776
>>41691
>>41746
Сука, какие же гоферы малолетние дегенераты, блядь.
sage 56 1341794
>>41675
Это откуда? Про вольфенштейн? Сейчас маллоки достаточно крутые, чтобы не пилить ничего своего (кроме, разве что, пулов объектов), но в 90х были все описанные проблемы.
57 1341854
Что почитать чтобы драйверы писать начать, хочу писать драйвера, мам пожалуйста.
58 1341857
>>41854

>драйверы


чего драйверы?
59 1341862
>>41857
Просто драйвера, ну что не понятно-то, хочу драйвера
60 1341865
>>41857
На деле хотелось бы изучить программирование драйверов под Windows 9x 7, 8.1, 10 (насколько я знаю WDK windows 10 един для них). Меня интересует программирование драйвера фильтров.
61 1341896
>>41865

>фильтров


Аквафор чтоли? Есть книга по WDK ищи, у меня даже бумажная где то валяется.
62 1341929
Привет уважаемые.
Я осмелюсь предположить, что некоторая часть присутствующих довольно глубоко знакома с Lisp'ом.
Я прав?
Отзовитесь.
63 1341934
>>41929
конкретней
64 1341939
Лиспотред либо отсутствует, либо умер давно.
Скоро заканчиваю читать прату. По совпадению появится еще немного свободного времени. Хочу в сторону лиспа двигаться. Очень нравится парадигма.
Пробовал Haskell, но несмотря на то, что не так уж и сложно, в целом, не зашло.
sage 65 1341957
>>41939
Функциональщики в моем байтоебском треде? Нет пути!
40243.jpg64 Кб, 529x647
66 1341964
>>41957

>моем


>sage


לך תזדיין
67 1341973
>>41794

Тогда перед выделить надо было еще и получить, EMS XMS 4GW
68 1341999
>>41794

>Это откуда? Про вольфенштейн? Сейчас маллоки достаточно крутые, чтобы не пилить ничего своего (кроме, разве что, пулов объектов), но в 90х были все описанные проблемы.



В наше время кастомные аллокаторы поверх выделенного штатным тоже используются но по другой причине (сосноли соснули) и всего двух простейших типов - stack allocator когда коридорное кинцо, очень легко выделять и прибивать сразу весь уровень/этапы и pool allocator используют когда кинцо с опенворлдом и ГТА-подобное и в процессе движения камеры/персонажа мир постоянно загружается/выгружается. В таком случае домики и пешеходы квадратно гнездовым методом впихиваются в чанки стандартных размеров.
69 1342001
>>41999

для мелкой же бойлерплейтухи применяется обычный маллок или аналогично работающая велосипедная версия.
70 1342009
>>41865
соответствующие главы windows internals для начала..
71 1342011
>>41794
apr апача со своими аллокаторами динамической памяти, энжинх тоже..
это к примеру, не для срача
sage 72 1342020
>>42011
Я разве сказал, что наличие качественного системного аллокатора кого-то останавливает от написания велосипедов?
sage 73 1342162
>>41929
Ты в лиспотред иди
sage 74 1342165
>>41999
Где можно про это почитать что-нибудь? Вообще не разбираюсь в pool stack allocator'ах.
sage 75 1342167
>>41939
Попробуй в сторону clojure, хотя бы что-то практичное будет. Из функциональщины в проде используется только erlang/elixir (по сути одно и тоже, синтаксис просто разный, если не углубляться), scala (сидит на двух стулах) и clojure какой-нибудь. Поэтому можешь попробовать что-то из этого, но сразу скажу, что будет очень непривычно, по крайней мере, со мной это было так. Я от эрланга первую неделю ахуевал нехуйски.
76 1342169
>>42009
Актуальная? Под пивчанский сойдет, сам читал?
77 1342171
>>42165
>>42167
Сажа приклеилась.
78 1342185
Посоветуйте книгу для кодинга под юникс?
79 1342205
>>42185
Advanced Programming in the UNIX Environment
Advanced Linux Programming
WHYY.jpg7 Кб, 253x199
80 1342289
>>42162
Его нет
81 1342299
>>42289
SICP тред есть
82 1342317

>- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf


Не для ньюфань.
Но оче годно.
83 1342325
>>41929
(задавай (quote (свои вопросы)))
84 1342344
>>42289
Есть же сикп-тред и кложетред.

>>42167
В целом двачую. жс - тоже функциональщина!!1
85 1342350
>>42169
конечно, читал, никогда не советую книги которые сам до этого не прочитал
плюс еще в том, что даже последние издания есть на русском - темы, которые там затрагиваются, и так сложные, если их еще и на английском читать, то мозг вспухнет
86 1342351
>>42165
да зачем тебе читать то, глянь как в библиотеках это сделано
в той же apr, которую выше упоминал
87 1342361
>>42344

>Есть же сикп-тред и кложетред.


ЛОЛ, их тоже уже нет. Судя по всему, либо вопросов нет, либо у специалистов такая дикая востребованность, что нет времени здесь сидеть.
88 1342362
>>42325
Ну, в целом, вот: >>41939

>>42167
А CL уже все?

Спасибо.
89 1342367
>>42361
Иди блять в сикп тред, еблан.
90 1342370
>>42167
Хаскелль забыл упомянуть.
92 1342375
>>42371
Воу, вроде именно то, что надо!
Я знал что я в правильном тредю
93 1342393
Что можно делать на сишке на винде?
94 1342395
>>42362

>А CL уже все?


Уже все.
>>42361
Он есть где-то на дне, поищи получше, да откроется он тебе.
>>42370
Возможно, но не вижу смысла кому-то его использовать в проде.
95 1342398
>>42395
Ну вот а я вижу.
96 1342405
>>42398
Какой? У меня был знакомый, который этим зарабатывал, но он, когда ходил как-то странно подпрыгивал, махал руками, из еды ел только печеночные паштеты и яблоки. Он сторчался.
sage 97 1342413
>>42361

>ЛОЛ, их тоже уже нет


По-моему ты просто не умеешь пользоваться двачем.

>что нет времени здесь сидеть


Здесь сидят в основном школьники\студенты, мужики скорее иногда потроллить заходят.

>>42405
Ты перепутал, это был коммон-лишпер (еще в пидорском пиджачке, розовой футболке и с противным носом, да?). Хаскеллисты за здоровый образ жизни! Только штанга, только хардкор.
98 1342418
>>42362

>А CL уже все?


(progn (не всё) (не-в мейнстриме))
99 1342425
>>42413

>(еще в пидорском пиджачке, розовой футболке и с противным носом, да?)


Лол, почти угадал, носил постоянно старый рваный оранжевый пиджак, но на лиспе особо не кодил, только на КЛОЖУР.
(JPEG Image, 225 × 225 pixels).jpeg9 Кб, 225x225
100 1342430
>>42425
Так кложур - это же и есть лисп. То есть он был кложуристом, но зарабатывал кодом на хаскеле? Чет ты запизделся походу, дружище.
101 1342443
>>42413

>По-моему ты просто не умеешь пользоваться двачем.


Это минус?
102 1342446
>>42367
Я выучу С и Лисп, найду тебя по ойпи и выебу твою семью.
103 1342447
>>42413

> основном школьники\студенты, мужики скорее иногда потроллить заходят


А где серьезные перцы сидят?
104 1342452
>>42393
в смысле чтоб платили?
драйвера
ну или блек
105 1342499
Может тут и на Форте кто-то писал? Как отзываетесь о нем?
106 1342502
>>42447
Хакерньюс\реддит\слак\ирц?

>>42499
Форт - для лохов, правильные пацаны выбирают Фактор!
мимославик
107 1342630
>>42430
Он оба языка использовал в работе, как-будто ты сам подобное не делаешь. Каждый программист с несколькими языками работает, за редким исключением в виде каких-нибудь дедов.
108 1342631
>>42452

>или блек


Что за блек?

>драйвера


Их типов и подтипов дохуя, нужно во всем разбираться?
>>42502

>Форт - для лохов, правильные пацаны выбирают Фактор!


Да одно и тоже по сути. У меня для форта вроде процессор завалялся, может стоит вспомнить старину.
>>42499
Язык интересный, поможет мышление развить. Бывает быстрее сишки!111 Вообщем, попробуй, но дальше чем просто увлечение - это вряд ли уедет.
sage 109 1342715
>>42631

>блэк


Малварь и криптование малвари
110 1342757
int &x3 = ☆ (int☆) malloc (sizeof (int));
Что запишет эта строчка в х3?
Знаю ,что маллок возвращает адрес на массив, но там еще одна звезда появляется и что выходит? х3 хранит адрес адреса этого массива?
111 1342765
>>42757
Напиши это кодом где-нибудь и прикрепи картинкой, непонятно, немного, что в объявлении переменной делает амперсанд, или это миссклик?
112 1342766
>>42765
Это из си++, там есть такое дело.
Ну представь что амперсанда нет, (получится си чистый) и по рассуждаем. Что будет в переменной х3
114 1342772
Gss, объявляю в разных файлах две статические глобальные переменные с одинаковым именем и возникает конфликт имён, что я делаю не так?
115 1342773
>>42772
...Gcc
116 1342775
>>42772
Ну компилируешь то ты их вместе.. менять имя
117 1342777
>>42775
Да, это так работает? Блин, а я хотел иметь короткие имена для читаемости, придётся дефайнами.
118 1342783
>>42757
Записывает в виде инта, мусорное содержимое первого(единственного) аллоцированого элемента?
119 1342821
>>42769
>>42766
Если это плюсы то видимо это ссылка.
В общем, ты выделил память, потом разыменовал указатель, получил какое-то значение, то есть мусор, и приравнял ссылке это число, не знаю точно, как работают ссылки, поэтому не могу сказать точно, что в итоге это даст.
120 1342826
>>42821
Сделаю лишь предположение, что присваивать ссылке не переменную, а конкретное значение это UB.
121 1342832
>>42766
В случае Си, это валидный код с утечкой памяти.
Просто присваиваем инту значение из кучи.
122 1342835
>>42832
Что будет в переменной зависит от компилятора. В случае gcc там скорее всего будет 0. У msvc не знаю.
123 1342840
>>42783

>аллоцированого


че?
124 1342841
>>42826
>>42821
Да, там не муссор будет а ссылка на место ,где хранится муссор
125 1342846
>>42772
extern?
>>42769
Что за редактор и тема?
>>42840
Наверное он имел ввиду выделенный в динамической памяти.
>>42715
То есть специалист по malware? Это в сторону ассемблера, дизасма смотреть надо, наверное.
15169643614173.png386 Кб, 391x600
126 1342851
Есть ли онлайн курсы по С типо кодакадеми? Чтобы прямо в браузере давали задание и можно было там же его сделать?
127 1342858
>>42395
>>42370
>>42362
Смысла в этой эзотерике сейчас мало, по причине того, что практически все нужные в реальной разработке фичи уже включены в стандартные яп.
После сишечки упарывай плюсы там, джаву, там есть все, что тебе может понадобиться из функциональщины.
128 1342864
>>42858
Забыл добавить.
Если так уж хочется необычного, посмотри на F#. Не исключено что скоро понадобится.
129 1342885
>>42362

>CL


мой бог да это те же грабли
не разглядела в темноте
а ну ка наступлю ещё раз
да те
130 1342898
>>42858
Да, пусть продолжают жрать говно.
131 1342899
>>42858

>плюсы там, джаву, там есть все, что тебе может понадобиться из функциональщины.


Зачем ты раздаешь свои охуенные советы, если сам нихуяшеньки не шаришь?

>>42864
F# давно не взлетел, сдох и никому не нужен, привет. Леночка, залогинься.
132 1342904
>>42899
f# и не собирался взлетать, подыхать и быть кому то нужным
это просто еще одно добавление к ml-семейству на хорошей платформе
и все
очень полезный язык для расширения горизонтов
133 1342906
>>42904
и интересный
планирую к старости начать пописывать что-нибудь на ml-семействе, живя в деревне и сдавая квартрки
CFjnQvj8thumb.gif206 Кб, 200x200
134 1342922
>>42904
Собирался, но не сложилось.

>это просто еще одно добавление к ml-семейству на хорошей платформе


А, так ты про ризон?

>очень полезный язык для расширения горизонтов


Или про скалу?..
135 1342971
>>42851
бамп
136 1342999
>>42898
В смысле? Это про функциональщину или лисп?
137 1343017
>>42846

>Что за редактор и тема?


С сайта снимок
138 1343018
>>42851
stepik
139 1343048
>>43018
разве там есть?
140 1343080
>>42899

>Зачем ты раздаешь свои охуенные советы, если сам нихуяшеньки не шаришь?


Обоснуй мразь
141 1343238
>>42165

>Где можно про это почитать что-нибудь? Вообще не разбираюсь в pool stack allocator'ах.



Вот статья, правда про кресты.

https://www.gamedev.net/articles/programming/general-and-gameplay-programming/c-custom-memory-allocation-r3010/

Если про зачем это нужно то тут 3 причины:

1) У консолей ограниченная память и без свопа. Чтобы делать ёбу им приходится экономить, а так как еба как правило кросплатформенная, то на пеку переносятся все те же подходы.

2) Как упоминается в статье - частичное избегание стрельбы по ногам с учетом предметной области путем ограничения функциональности аллокаторов.

3) Скорость работы. В тесной связке с файловым движком приобретает большой смысл в опенворлд играх, когда содержимое огромной карты (превышающее размер доступной оперативы в несколько десятков раз) необходимо постоянно кусками прогонять через ОЗУ, в идеале избегая видимых недогрузов и подгрузок.
142 1343492
Собираюсь изучить программирование под unix системы, но в данный момент установить на диск (или дуалбут) linuxbsd не могу, поэтому спрашиваю ответы насчет возможности изучать программирование под unix на шиндовс. Cygwin подойдет? Или надо поставить систему на флешку (не live cd, а именно поставить), or виртуалку с голой консолью (от чего-то тяжелее голой консоли на виртуализации, моя виртуалкоробка улетает к праотцам).
143 1343493
>>43238

>У консолей ограниченная память и без свопа


А чем это обусловлено? Что за у них особенности в архитектуре, что затрудняет реализацию свопа?
144 1343497
>>43492
у меня старенький core2duo, 4 гига оперативы, хост - 10я винда
на vmware workstation - debian, i3, консоль и vim, кодить можно без проблем, браузер и pdf-viever так же запускаю в винтуалке чтобы на хост не переключатся

могу порекомендовать сделать примерно так же как у меня
удачи
145 1343502
>>43497
Спасибо за совет, задумывался как раз над тайлами.
А в vim каково кодить? Можно настроить кошерный автокомплит, подсветку ошибок и прочие радости зажравшихся? Насколько долго учиться кодить в этом, чтобы не сидеть неделю за манами?
146 1343509
На чем на Си можно относительно быстро накидать оконное приложение для Винды? WinAPI кажется слишком низкоуровневым.
147 1343523
>>43509
Очевидный GTK.
148 1343549
>>43502
есть альтернативный подход к кодингу в виме и в юниксах - в редакторе ты пишешь код
а все остальное делаешь в командной строке и соответствующими утилитами
149 1343552
>>43523
Не могу найти, где для MinGW, собственно, скачать GTK2. Под MSYS2 не вариант, винапи подергать таки надо. Или всякие юниксовые аналоги "получить список файлов в директории" заведутся?
sage 150 1343558
>>43492
VirtualBox (можно взять старую версию, которая без hardening, она гораздо быстрее стартует), разрабатывать в винде, директорию с исходниками расшарить в виртуалку, компилировать и запускать в линуксе. Виртуалку можно запускать в headless режиме, чтобы не мешалась, подключаться к ней по SSH.
151 1343566
>>43552
Странно, просто по первой ссылке качаешь GTK и подрубаешь либы вместе с хэдерами, можешь это в студии сделать (только поставь компилировать как сишный код). А вообще по идее msys тоже думаю, что подойдет, но проще будет первый вариант. Также если тебе не критично плюсоватость, то есть Qt, там быстро-легко интерфейс накидай и уже функционалом займись.
152 1343766
Кто байтоебил с IPTV протоколом? Дайте описание формата, пазязя.
153 1344070
Как сделать приложение под линукс на сишке? Т.е. можно было бы выбрать гуй это или в командной строке.
Также чтобы это можно было установить как пакет. Не совсем понимаю как это должно устанавливаться, походу через make && make install.
154 1344087
>>44070
То есть тебе интересно как оформить приложение в .deb(-ВСТАВЬ НАЗВАНИЕ СВОЕГО ЛУЧШЕГО ДИСТРА) архив? В интернете есть масса информации по этому поводу, думаю, нам тут нет смысла это рассказывать. Не из жадности так говорю, а из здравой рациональности.
155 1344186
>>39788 (OP)

Товарищи, помогите, пожалуйста, с регулярными выражениями (а именно - с библиотекой regex.h)

Надо из строки вычленить даты форма HH:MM и вывести. Регулярное выражение я составил и протестил, а вот с реализацией через regex.h - проблемы... Не подскажете, что я делаю не так?

https://ideone.com/Op2sZI
156 1344315
>>44186
Попробуй так https://ideone.com/vdtCz8
157 1344337
>>44315
Суть я понял. Типа искать первое встречное совпадение, после чего смещать указатель на конец этого совпадения, и по новой.

Но зачем тогда нужен параметр nmatch в regexec?
int regexec(const regex_t preg, const char string, size_t nmatch, regmatch_t pmatch[], int eflags);

Бывают случаи, когда nmatch > 1?
158 1344353
>>44337
Оно нужно, когда ты хочешь помимо (или вместо) куска текста, соответствующего всему регулярному выражению, доставать части в скобках.
Первый regmatch соответствует всему выражению, каждый следующий — подвыражениям в соответствующих скобках, в порядке появления открывающих скобок.
У тебя там 4 пары скобок + регулярное выражение целиком, итого 5 значений.
19:36 соответствует выражению целиком.
Первое 19 соответствует всему подвыражению (([0-1][0-9])|(2[0-3])) так как подходит под первую часть условия "или" внутри него.
Второе 19 соответствует просто ([0-1][0-9]).
Далее выводится пустое место, потому что в общем тексте совпадения "19:36" подвыражению (2[0-3]) ничего не соответствует.
И наконец идет 36, соответствующее последней паре скобок ([0-5][0-9]).

Таким образом нужное количество regmatch'ей в массиве зависит от того, сколько пар скобок тебе нужно анализировать. Если тебе нужно только все совпадение целиком, то можно обойтись без массива.
159 1344355
>>44353

Понял. Принял.
Огромное спасибо!
160 1344455
еси я пишу:

char ☆ baz = malloc(10);

то нолик(\0) автоматически ставится вконце массива baz?

если нет, то как мне вставлять нолик вконец?
161 1344463
>>44455
malloc просто выделяет динамическую память и всё. А ноль должен стоять не в конце памяти, а в конце строки(то-есть после нуля может быть ещё доступная память)
162 1344464
>>44463
А как же тогда обезопасить свой код от стэк оверфлоу?
163 1344467
>>44464
Во-первых есть стандартные функции работы со строками, во-вторых пиши остальное сам. Что тебе конкретно то нужно, вопросы совсем новичковские, почитал бы сперва по сайтикам.
164 1344470
>>44464

>А как же тогда обезопасить свой код от стэк оверфлоу?


Использовать Rust.
165 1344521
Есть большая структурка, в ней элементы различных типов. Надо заполнить ее из файла, там key = value, ну и скобки иногда. Парсинг-то я сделал, но как по человечески ее заполнить? Пока у меня только тонна строк типа if(!strcmp(key,...
166 1344538
>>44521
А, вот, пришла идейка накостылить hashmap (или как оно там называется?) для нужных мне типов данных и сгруппировать поля в них. Насколько плохая идея?
167 1344555
>>44538
Почитал еще - просто ассоциативный массив. Наверное, будет нормально.
168 1344581
Правильное предсказание ветвления вообще замедляет процесс? Допустим если главном в цикле только единожды срабатывает условие. Я обернул его в макрос if(__builtin_expect(!!(x), 0)), будет ли комп после первой ошибки пролетать его не замедляясь?
Developer 169 1344665
I need to create a converter from DJVU to PDF for linux (ubuntu). What do i need to know for this project? Which way to go to solve this?
170 1344705
>>44464
Не писать под DOS.
171 1344741
>>44665
Linux or Windows, this is not important in this question. You must:
1) Read about DJVU format documentation
2) Read about PDF format documentation
3) ???
4) Profit
Sosi huj kstati
172 1344758
>>44741
Sam sosi hui bichara.
173 1344760
>>44741
You can write in Russian, idiot.
sage 174 1344805
>>44581

> Правильное предсказание ветвления вообще замедляет процесс


Правильное предсказание бесплатное. Неправильное (не важно, хинт, или процессор сам предсказывал) - десятки тактов.

>>44665
Ty zaebeshsja. PDF dovol'no complicated shit.
175 1344809
Аноны, а как вообще портить код на си? Вот я написал на винде, компанул. Получил экзешник. А вдруг я хочу перенести прогу на линукс?
sage 176 1344817
>>44809
Ну вот на винде ты использовал Windows API. Ты #ifdef-аешь функции, где ты их использовал и пишешь аналогичные реализации с POSIX-функциями и линуксовыми либами. Рано или поздно в твоем коде сама по себе выделится прослойка, которая общается с ОС, тогда ты выделишь ее в отдельный файл или даже либу, а #ifdef-ы снесешь.

Если же ты Windows API не пользовался, а обошелся стандартной библиотекой или уже кроссплатформенными либами, ты просто делаешь cc file.c -lsdelatzaebis -lanotherlibrary, все собирается и даже работает, если в твоем коде нет ошибок.
177 1344850
>>39788 (OP)

По-прежнему Изучаю регулярные выражения.

Пытаюсь вычленить из текста url-ссылки. Но чё-то ссылки вообще не ищутся((9(

https://pastebin.com/F2mBusEV

Может кто подсказать, в чём проблема?
Регулярное выражение тестил здесь: https://regex101.com/ - всё работает вроде как
178 1344857
>>44817
Душевно. Спасибо
179 1344905
>>44850
Во-первых, чтобы вставить в сишную строку символ \ надо писать его два раза подряд: \\.
Во-вторых, posix'ные регулярные выражения не поддерживают некоторые штуки типа \d, \w и тому подобного, и вместо этого нужно писать [[:digit:]], [[:alnum:]] и всякое такое.
В итоге должно получиться что-то вроде этого:
"([[:alpha:]]+://)?(www\\.)?([[:alnum:]]+\\.)+[[:alnum:]]+(:[[:digit:]]+)?(/|(/[[:alnum:]]+)+\\.[[:alnum:]]+)?"
180 1344909
>>44905

Большое спасибо!
181 1344930
Why you use C, ctards? We have C++.
182 1344962
>>44930
Правильно Why do you use C, ctards, while we have C++?
183 1344972
>>44962
Danke schon!
sage 184 1345342
>>44930

> We have C++.


Сочувствую всей душой.
185 1345423
>>44972

Правильно буит "Danke schön". А если ö на клаве нет, то пишут "Danke schoen".

Ибо schon и schön - совсем разные слова. Глаза режет.
15045423721381.jpg187 Кб, 1600x1144
186 1345442
Поступила в школу 21. Через месяц будет сложное изучение С.
Дайте интересных занятий для проверки своих скиллов. Хочу утереть двачеров, которые говорят, что тянки не могут в программирование.
sage 187 1345466
>>45442
Занятий или заданий? Задания в гуглокартинках по запросу warosu programming challenges, занятия CS50 в гугле и книги из шапки.

> тянки не могут в программирование


> занятий для проверки скиллов


Да они даже в русский язык не могут.
188 1345467
>>45442
https://www.codewars.com/
Первое что в голову приходит. Ну и по классике
АСЕЧКУ
@
ПИСЕЧКУ
Снимок экрана 2019-02-11 в 10.40.06.png39 Кб, 587x185
189 1345515
Как это работает та аааа памагити
190 1345526
>>45515
Перепишешь на хвостовую рекурсию - расскажу.
191 1345527
>>45515
При n меньше 1 будет выдавать хрень, низачот.
192 1345529
>>45527
Да, всё верно, это для натуральных чисел. Памагите
193 1345530
>>45529
Добавь после ифа ещё один иф, который печатает "только натуральныеы", если 'n' окажется меньше 1. Либо смени, чтобы if(n>1)... else printf "только натуральныеы" А вообще это обычная рекурсия. Функция вызывает саму себя, понижая каждый раз 'a', прибавля 'n' к промежуточной переменной, которую вернёт когда все рекурсивные вызовы функций завершатся и самая первая функция вызвавшая рекурсию вернёт результат промежуточных вычислений.
194 1345532
>>45530
а не, пизжу. Понижается 'n', прибавляя 'a'.
фикс*
195 1345542
>>45530
а какой смысл в строчке 'return a' ? Ведь она возвращяет всегда то что дали ей вначале a!
196 1345546
>>45542
Это условие окончания рекурсии, типо a умножить на 1 = а.
Распиши как эта функция будет работать хотя бы при н = 3, и поймёшь что к чему.
197 1345547
>>45546
Пипец ты умный, у тебя блога нету?
198 1345548
>>45547
мимо
в том числе и про блог, хотя насчёт того анона - хз
199 1345549
>>45546

>Распиши как эта функция будет работать хотя бы при н = 3


Я пробую, нихуя не понятно всё равно
200 1345552
>>45549
Если хочешь хорошо разобраться с рекурсией, поработай с бинарными деревьями, хотя я думаю тебе рановато ещё.
201 1345556
>>45549
В конкретно это случае, давай я распишу.
3 умножить на а = 2 умножить на а + а = 1 умножить на а + а + а ==
Теперь мы попадаем в наше условия окончания рекурсии, что а на 1 это а, и подставляем.
== а + а + а.
Надеюсь поймёшь.
202 1345561
>>45556
а бляьб... смысл в том чтобы каждый раз а у нас было. спасибо аноны, буду ебать бинарные дервья наверно.
203 1345563
>>45556

>3 умножить на а = 2 умножить на а + а = 1 умножить на а + а + а ==


блеть ты гений, где работаешь, расскажи о себе. вышка есть?
204 1345566
>>45556
Ты только на C пишешь?
205 1345569
>>45563
Я работаю системным девом по факту, пишу драйвер под линукс.
Вышки ещё нет, третий курс пока что.
>>45566
Ну немного балуюсь питоном, ещё на работе всякие баш-скрипты пишу и CI на ямле пилил.
В принципе плюсы я тоже более менее знаю, но на работе применять их негде, т.к. в ядро не примут драйвер написанный на плюсах, хех.
20 дал если что.
206 1345576
>>45569
20 лвл
селф-фикс
207 1345590
>>45442
Я двачер, который не прошел бассейн, зачем так грубо про нас..?
Могу только дать совет учить и понимать смысл, а не гнаться за очками. Потому что экзамены важнее. Не копипасти чужой код, даже если в жопе рейтинга. Да и еще, они смотрят на прогрессию, если ты получил 3 лвл, а экзамены пишешь на 0, то это тревожный звоночек. Лучше иметь 1 лвл, но сдать все экзы на 30-60 балов
И ты уже проявляешь не самостоятельность, когда пишешь тут такие просьбы. А могла бы тыщу сайтов загуглить сама (в шк этот навык гугления понадобится) И желательно на инглише гуглить тоже.

И вообще я это все рассказываю, не потому что ты тян или мне понравилась ты мне уже не понравилась своим "утереть нос"
А потому что я уже не поступлю в эту школу, в договоре написано что шанс 1 раз на жизнь. Так что спускаю их важные данные.
208 1345624
>>43493

>А чем это обусловлено? Что за у них особенности в архитектуре, что затрудняет реализацию свопа?



Его отсутствием в операционной системе соснулей.

Можешь спиздить на русракере SDK PS4, там про все подробно. Если в кратце - на соснулях уже давно обыкновенные ОС с точно такой же хуевой тучей библиотек, времена ебания регистров на ассемблере закончились лет так 15-20 назад.
209 1345641
>>45423

>"Danke schoen"


Спасибо, всегда не знал, что делать в случаях, когда лень ставить фашистораскладку.

Какой левел языка?
210 1345658
>>45442

> Можно ли обучаться дистанционно?


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


Ясно, хуета.
211 1345668
>>45442

>Сложное изучение


>stdlib only и ограничение сложной логики


lol
212 1345675
>>45668
Ну там заставляют все писать без for / print
213 1345684
>>45675
Что значит без фор?
Если тебе нужно будет заполнить массив определенным способом ты будешь каждому элементу отдельно присваивать, не юзая for?
Хуйня какая-то.
базарю очередные юзлес курсы, которые ничем не отличаются от так же бесплатных курсов из инета
214 1345781
>>45675
Это и означает без сложной логики. Судя по базе заданий, там дают фундамент для последующего изучения алгоритмики. Оно и понятно, новичкам ни в одном языке сложную логику не дадут, иначе они нихуя не выучат.
215 1345854
>>45781

>for / print


>слолжная логика

216 1345890
>>45854
Ебучий долбоеб научившийся по хело ворлдам с /пр высирать в джейпейн параше свои дженерик проги считающие гыыы скока я ебал телок веди имя узнай знаю ли я пацана с таким иминем))) плиз завали ебало и не пиши ничего. Если ты не понимаешь почему новичкам в си даже на самых тупых курсах в стерлитамаке не дадут а первые месяцы ничего кроме вайла ну или свича с одним кейсом — просто иди нахуй тупой выродок
217 1345922
>>45890
Так почему?
Это что усложняет обучение?
Или юзать фор запрещено каким-то кодстайлом?
218 1345934
>>45922
Ты че тупой? Как думаешь почему в школе треугольники изучают раньше чем призмы и функции? Или ты в шестом классе так же пиздел училкам мол где мои интегралы Мань Аркадьевна зачем мне эту хуйню учить можно же из библиотеки 1996васянлиб функцию вызвать!!!)))
Ладно скажу тебе чтобы ты понял получше, очевидно они там готовят не макак-дизайнеров, а реальных программеров, по вашему терминалоебов.
219 1345939
>>45934
Блядь, чем фор сложнее вайла, ты какую-то хуйню несёшь.
А я могу считаться терминалоёбом ака реальным программером, если я пишу драйвер в ядро?
Нам не запрещали в универе на первом курсе юзать принтфы или фор/ду вайл.
220 1345963
>>45939

>Блядь, чем фор сложнее вайла, ты какую-то хуйню несёшь


>>45684

>Что значит без фор?


>>45684

>Если тебе нужно будет заполнить массив определенным способом ты будешь каждому элементу отдельно присваивать, не юзая for


>>45939

>Нам не запрещали в универе на первом курсе юзать принтфы или фор/ду вайл.



Пиздец. Это точно Си тред? Как можно не вспомнить про goto блять. Сразу видно ни строчки кода на ассемблере не писали.
мимо фп господин
221 1345977
>>45963
Если их научат правильно пользоваться goto, окей просто, но тыкать goto там, где можно обойтись без него полный бред, только ухудшает читаемость.
да это си тред и тут есть встроенные циклы
222 1345989
>>45590
А что там было на бассейн, что ты не прошел? Там вроде бы всё легко быть.
223 1346021
>>45989
Хочешь поподробнее разузнать да? Девочка?
Ну спроси ,что конкретно тебя интересует. Может отвечу. А пилить гигантские пасты мне не кайф, и так много тебе дал уже подсказок
224 1346103
>>45989
Проходил осенью интенсив в юнитфактори, тоже самое, но возможно от школы к школе меняются подходы. Первую неделе ебете линукс до посинения, начинаете разбирать си, собственно следующие 3 недели только сижкой и занимаетесь. В конце первой недели проект вдвоем, после второй — втроем, и на третьей впятером. Последняя неделя — несколько больших пректов, но абсолютное большинство успело сделать только один
Если никогда не работала на маке, советую заранее разучить хоткеи, всякие прыгания по страницам, в конец строки, и самое полезное — control+shift+enject
Не забывай проверять свои работы перед заливкой на вогсфер, не стесняйся спрашивать у шарящих ребят, ни при каких условиях не заебывай админов, даже если кажется , что они не заняты, хорошо высыпайся и не пытайся что-то сделать дома. Не общайся с одними и теми же людьми, всегда ищи новых и учись у них чему-то бтв юзание дебагеров приравнивается к читингу. Ну и само дальнейшее обучение по крайней мере в Киеве того не стоит, но бассейн это супер экспириенс.
225 1346115
>>45442
О чём ты вообще? Какое ещё сложное изучение через месяц?
>>45590
Этого не слушайте. Система отбора никому неизвестна, главное стремиться поступить и усердно трудиться.
>>45989
Если до школы не программировал, то задания на бассейне не будут казаться лёгкими.

четвёртый месяц в школе 21 задавайте ответы
226 1346121
>>46115

>главное стремиться поступить и усердно трудиться.


А он что по твоему сказал? даун
227 1346223
>>46115
что задания делали, чтобы примерно понять логику.
думаю между институтом и школой.
228 1346269
>>46103

> юзание дебагеров приравнивается к читингу


Ну охуеть теперь. Мне принтфами отлаживать чтоле?
Мимо
229 1346278
>>46269
Для лаба1.ц дебаггер не нужен, как и принтфы отладочные в принципе.
230 1346331
>>46269
Я только так и умею. Получается довольно неплохо по крайней мере все работает, хотя я понимаю, что с приличной конторки меня бы выгнали ссаными тряпками.
Нииблядь
231 1346372
Привет сигоспода.
Прохожу Прату, на пике задача.
В принципе, решение из вереницы if-ов приходят сами на ум. Гугление показало что практически все решили именно через простыню if-ов.
Но заебавшись в 10й раз переписывать if-ы да, я тупой, решил по-своему.
Ты наверное будешь смеяться над ньюфагом, а мне вот дичайше прёт что я написал понятный мне код.
Просто хотел поделиться.
И вопрос есть - если например железо поддерживает операцию swap как атомарную, как ее вызывать? Через ассемблерные вставки?
Спасибо.
232 1346381
>>45641

B1, однако

Лушше б англицкий учил, ий-богу
233 1346467
>>46115
Новый бассейн начинается 25 февраля.
Что было на старом? Что вы изучали, что ты вылетел с бассейна?
sage 234 1346473
>>46372

> если например железо поддерживает операцию swap как атомарную, как ее вызывать


Компилятор и сам может сгенерировать. Но зачем тебе атомарно? Ты бы лучше в restrict поиграл, там ему самое место.
235 1346474
>>46473

>Компилятор и сам может сгенерировать.


А как он знает что надо сгенерировать? Он видит что я взаимоменяю значения?
236 1346480
Лдоьд
237 1346555
Что почитать по использованию записи "дополнение до 2" с символьной арифметикой? И вообще про операции сложения, умножения со знаковыми и беззнаковыми различной длины. Просто средства контроля переполнений и ошибок в процессорах различных семейств...
А то как-то сухо везде, "вот это так делается - делайте так же".
Хочется историю, мотивацию к созданию.
Можно док-ва из дискретки тоже, что всё это работает, только вкратце, вводить в дискретку талмудами не надо.
sage 238 1346558
Хочу придумать новый язык программирования.
Высокоуровневый, мультипарадигма и без ооп. Сейфовый, сверхбыстрый и простым синтаксисом.
Сверхбыстрый за счёт увеличения времени компиляции.
Тогда даже Си пососет.
Вопросы?
239 1346559
>>46558
Полностью без объектизации? То есть даже препроц и библиотеки нахуй? 0_0
240 1346560
>>46558
Структуры из указателей на функции там будут?
241 1346579
>>46559
Можно запилить, чтобы удобно было
>>46560
Посмотрим как можно сделать это безопасно

Главное еще, супергибкость!
sage 242 1346602
>>46558

> сейфовый


> сверхбыстрый


Выбери что-нибудь одно.

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


Фортран?

> Тогда даже Си пососет.


Нет.
243 1346607
>>46602

>Выбери что-нибудь одно.


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

>Фортран?


Нет

>Нет.


Да
244 1346624
Анон из школы 21.

Как сделаешь такой код более быстрым и удобным?

#include <stdio.h>
int main() {
int height = 0;
int nbLeaflets = 0;
scanf("%d %d", &height, &nbLeaflets);
int tinuviel = height <= 5 && nbLeaflets >= 8;
int calaelen = height >= 10 && nbLeaflets >= 10;
int falarion = height <= 8 && nbLeaflets <= 5;
int dorthonion = height >= 12 && nbLeaflets <= 7;
if(tinuviel) {
printf("Tinuviel");
}
if(calaelen){
printf("Calaelen");
}
if(falarion){
printf("Falarion");
}
if(dorthonion){
printf("Dorthonion");
}
if(!tinuviel && !calaelen && !falarion && !dorthonion){
printf("Uncertain");
}
return 0;
}
244 1346624
Анон из школы 21.

Как сделаешь такой код более быстрым и удобным?

#include <stdio.h>
int main() {
int height = 0;
int nbLeaflets = 0;
scanf("%d %d", &height, &nbLeaflets);
int tinuviel = height <= 5 && nbLeaflets >= 8;
int calaelen = height >= 10 && nbLeaflets >= 10;
int falarion = height <= 8 && nbLeaflets <= 5;
int dorthonion = height >= 12 && nbLeaflets <= 7;
if(tinuviel) {
printf("Tinuviel");
}
if(calaelen){
printf("Calaelen");
}
if(falarion){
printf("Falarion");
}
if(dorthonion){
printf("Dorthonion");
}
if(!tinuviel && !calaelen && !falarion && !dorthonion){
printf("Uncertain");
}
return 0;
}
245 1346625
>>46624
вместо ифов свитч
246 1346626
>>46625
Ты из школы 21? Если нет, то проходи мимо.
247 1346628
>>46626
Прошел тебе за щеку
248 1346632
>>46628
Сразу видно дауна, который даже бассейн не пройдет.
250 1346700
>>46632
Пиздец, это вот этому учат в этой школе: пытаться соптимизировать код из 5 ифов?
Ебать как полезно.
Скоро дойдете до оптимизации кода из одного принтфахелоу ворлд
Даже интересно, вас там будут чему-то реально полезному учить или вот такой хуйнёй будете все время заниматься.
Лучше сами что-то немного изучили и начали свой проект пилить, любой, и то больше опыта бы было.
не блядь, серьёзно? вот ето — хваленая школа 21?
251 1346709
Ща потекут задачи из школы..
Вы хоть оформляйте нормально, а не кидайте как есть
252 1346711
Сап, анон. Брату в шарагу нужно написать на плюсах программу сортировки пузырьком одномерного массива, который вводится с клавиатуры и имеет 5 элементов. Сам я веб-макака и с плюсами не знаком, можешь накидать код, пожалуйста? Делов на 2 минуты, а я благодарен тебе буду очень.
253 1346719
>>46711
Здесь базовый С. Братишь, тред плюсов дальше.
254 1346720
255 1346723
>>46719
Спасибо, написал туда.
256 1346724
>>46720
Ебать у тебя ценник. Мог бы и правдоподобнее выставить.
мимо
27164015101561600763710953083308408865563483o.jpg170 Кб, 2048x1365
257 1346725
>>46720
За 5к я тебе хело ворлд на хтмле напишу, хочешь?
258 1346730
>>46724
Нормальный ценник, а со школочмошников нужно брать в джва паза больше
259 1346740
Что лучше подойдёт для вкатывания, vs community или vs code?
С программированием в принципе знаком почти 10 лет. Но серьезно никогда не занимался.
260 1346746
>>46740
Короче, пока vs code. В студии я работал какое-то время, но там слишком много пока ещё ненужных вещей, которые занимают место.
261 1346757
>>46746
В студии есть встроенный компилятор, к вс код нужно прикручивать или компилятор от студии или мингв ставить.
262 1346780
>>46757
Я поставил мингв. Вроде бы работает, но почему-то дебагер не видит gdb. Он же идёт вместе с мингв, разве нет?
263 1346784
>>46780
Не понимаю.
264 1346793
>>46780
Не уверен, лучше погугли.
265 1346794
>>46784
грит, что у тебя в переменной miDebuggerPath должно быть что-то помимо "gdb". Найди поиском путь до gdb и впиши этот путь в переменную. Как мне кажется.
Но я тут просто мимио ошиваюсь
1.PNG33 Кб, 628x547
266 1346801
>>46794
Он в той же папке что и компиляторы. Ладно, поищу дальше что можно сделать
267 1346805
>>46801
А у тебя компилятор сам-то хоть работает? Потому что если компилятор не видит, то значит у тебя в environment нет переменной, в которой находится путь до компилятора и дебагера. Я к тому, что там в предыдущем пикриле должно быть, наверное, не просто gdb, а full_absolute_path/gdb.exe
268 1346806
>>46801
асло, попробуй ещё закомментировать в json-настройке переменную "setup commands" и всё, что с ней связано и тогда запустить дебагер.
269 1346809
>>46805
В path естественно всё прописано, и бинарник он создаёт.
Если путь до дебагера прописывать другим образом, то он просто не находит его.
270 1346811
>>46806
Не влияет. То же самое
271 1346815
>>46809
Программа работает.
Дебаггер не работает или его нет
272 1346816
>>46801
А ещё в ошибке указано, что переменная назывется "MIDebuggerPath", но в настройках переменная называется "miDebugerPath". Я так-то хз критичен ли тут регистр, но мне кажется, что критичен.
>>46809
А разве в винде нормально, что путь начинается от корня? Я бы заменил слэши на бэкслэши. И либо вписал "C:\Programm FIles\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\gdb.exe ", либо "${path}/gdb".
Но очевидно, что тут что-то ещё помимо этого. Но на этом мои полномочия всё.
273 1346818
>>46816
Я и отдельную переменную для miDebugerPath делал, и полный путь писал. Безрезультатно.
274 1346820
И при этом всём красноглазиков после такого называют пердолями, хотя на винде это вот так вот делается, лол.
1.PNG1 Кб, 269x38
275 1346822
Пиздец. Вот в чём дело было-то, лол
276 1346824
>>46820
Можно было студию ставить, но она ненужна пока.
277 1346831
>>46822
Молодец.
278 1346832
>>46624
Чем твоя школа от курсов говна отличаются?
279 1346844
>>46784
че за язык
280 1346845
>>46844
це не язык. це формат передачи данных json, который вытесняет xml, ну, или не вытесняет, но конкурирует с ним. А если ты про язык, на котором обычно пишут, то это английский, ну и судя по тому, что настраивался мингв под студию, то это язык программирования Си, как и тред, в котором мы находимся.
281 1346872
>>46844
Это просто скрипт для консоли чтоб компилить/дебажить с одной кнопки
283 1346881
>>46877
в шёпотину.
284 1346920
>>46820
Пердолик поставил на винду пердовысер (даже два!) и пердолится. Что удивительного?
Нормальные люди ставят студию и работают, но пердоли работать не могут, вот и ставят пердософт имитируя деятельность пердоленьем с ним.
285 1346922
>>46920
Вс код тоже проект мелкомягких, как и студия, какие проблемы?
Он удобный и намного легче студии.
я не говорю, что студия хуже вс кода, каждый пользуется тем, чем ему удобно, нет смысла осуждать кого-то за выбор рабочего окружения
286 1346929
>>46922

>какие проблемы?


Твой дебилизм проблема. И мингв и вскод это линуксовые пердовысеры, какая разница кто их делал. Ни то ни другое на винде не нужно, там есть студия, в 100500 раз лучше, и всё работает без пердоленья. Но пердоля бесполезен, ему страшно когда всё работает, ведь тогда придется что-то делать - программировать, а он не может, вот и качает пердовысеры и ебется с ними, отттягивая неизбежное осознание собственного ничтожества.

>намного легче студии


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

>каждый пользуется тем, чем ему удобно


>У МИНЯ НИРАБОТАИТ, ПОСОНЫ ПАМАГИТИ, Я ТУПОЙ


Такое-то удобство, азаза. Именно потому что тупой, и ставит пердософт. Как выше и обяснил, пердософн прекрасно подходит дебилам, сознавая из ничего занятие на пустом месте, как колесо для хомячков, в котором они радостно крутятся, воображая что умные и делают умные дела.
287 1346961
>>46929
Бля, ты какой-то дегенерат, который дико топит за конкретное ИДЕ, хотя ИДЕ это просто инструмент, можно в блокноте код писать, правда только для лаборатории подходит, т.к. серьезные проекты писать без нормального редактора довольно проблемно.
чувак, лечись в тебе слишком много злости
288 1346967
>>46929
Я не ставил студию потому что там много ненужных мне на данных момент вещей. Как научусь грамотно писать проекты - поставлю. А пока функционала vs code мне хватает.
Машина тянет студию, просто у меня и так дохуя тяжеловесных программ типа матлаба и прочих cad/cae. Если есть альтернатива более лёгкой (и удобной естественно) версии программы, то почему нет? К тому же будет полезный опыт настройки чтоб понять что к чему и куда идёт.

И вопрос, почему это работает
for (int i = 0; i < (p2 - 1); i++)
а в случае передачи значения p2 через указатель - не работает
for (int i = 0; i < (*p2 - 1); i++)
289 1346969
>>46967
Давай полный код, по циклу непонятно, почему у тебя это не работает.
290 1346975
Посоны, студия так и не научилась в С11 нормально? Clang for windows походу тоже сдох, нипописать на няшной сишечке пол венду походу.

Хотя можно сбилдить вижлой кажись, или цыгвин скочать. В чём разница будет? Что с С ABI будет? Смогу винапи юзать? А опенгл?
291 1346978
>>46969
Ну обычный пузырьковый алгоритм. 23 строчка.
Это работает.
https://pastebin.com/n1jMKfYx
Это не работает.
https://pastebin.com/aYjHDzHb
292 1346986
Ай, блять, даже если конпелятор нормальный завести, всё равно нормальной стандартной либы не будет.
293 1347019
>>46929
Опять чмо оправдывает кусок виндового говна.
294 1347030
>>47019

>чмо


Перестань загаживать уютный тредик.
295 1347031
Добрый вечер.
Можете вкратце но аргументированно объяснить почему программист на c# или backend зарабатывает в среднем ощутимо больше, чем на c?
Спасибо.
296 1347035
>>47031
Задачи разные плюс сложность изучения
297 1347038
>>47030

>t. чмо

298 1347041
>>47031
Потому что ооп. А ооп прост для освоения типичному обывателю. Плюс схожесть с другими языками для ооп
299 1347045
Только идиот будет писать на сишке сейчас то, что можно написать на расте. Если выбора нет (типа всяких ёба-микроконтроллеров), то ладно, пишите на сишке
300 1347047
>>46967
имхо, студия на винде пошустрее vs code будет..
301 1347056
>>47045
Раст медленный и неудобный, зачем писать на нем?
302 1347059
>>47045
Я твою мать нежно трахал даже предварительно не выделив памяти под свой хуй ибо у нее там ведро пиздец далбаеб иди нахуй
303 1347060
>>47056

>неудобный


Дело привычки.

>зачем писать на нем


Очевидная безопасность
304 1347061
>>47060
Я могу писать безопасно и быстро.
15417907200200.jpg46 Кб, 453x604
305 1347063
>>47059

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

306 1347064
>>47061
Нет, не можешь, любой может обосраться. Основная хуйня, что Раст помогает писать корректные проги, а Сишка - нет.
307 1347066
>>47063
Предлагаю тебе съебать и заняться делом. Например, выучить какой-нибудь хоть немного полезный язык, а если остаёшься то подготовь свою жопу к принятию моего трехмерного массива
308 1347073
>>47045
>>47060
>>47064
Как там лайфтаймы на каждый чих?
309 1347077
>>47073
Не надо кривые руки проецировать на нормальных людей,обрыган.
1523833618140.png92 Кб, 250x250
310 1347092
>>47077

>любой может обосраться


>Не надо кривые руки проецировать на нормальных людей

sage 311 1347124
>>46978

> Это не работает.


А должно? А -Wall компилятору не пробовал указать, чтобы он тебе пояснил, что по адресу N (=5), который ты передал в p2, нету размера массива?
312 1347140
>>47047
Да. Код на джаве написан. Ну и что, зато весит меньше и интерфейс приятный
313 1347141
>>47124
Я вместо N и обычную переменную ставил и просто число. Всё равно.
sage 314 1347146
>>47141

> Всё равно.


А какая разница, откуда ты берешь число, когда передаешь его вместо указателя? Включи ворнинги, читай ворнинги! А сделать ты хочешь вот это:
int length = N;
bubl(inp, &length);
315 1347168
>>46832
Это франшиза топовой французской школы 42. Обучение бесплатно, требуется только пройти отбор, который тоже бесплатный.
Выпускники сразу претендуют на сеньеора в гугл.
sage 316 1347177
>>47168

>франшиза


Я бы сказал, говнопародия.
Выпускники такой школы могут только сосать хуй на пару с мамашей.
317 1347181
>>47168

> сеньеора в гугл.


АЙ ЛОЛД
67B3786D-352D-492B-9ED2-088EB8049FCC.jpg229 Кб, 1124x1656
318 1347188
Школа 21 полезна в первую очередь комьюнити и мотивацией заниматься, делать совместные проэкты и не охуеть от сычевания в туториалы дома с мамкой.
319 1347191
Fh
320 1347198
Сейчас на бассейне по приколу, пришел уже с опытом разработки, и имею щас только 3 уровень, задавайте ответы.
Скажу сразу, что есть подводные камни, из-за которых на деле все сложнее, чем кажется.
321 1347199
>>47188
Охуел дома от сычевания в туториалы с мамкой. Я на верном пути?
322 1347203
>>47198
На бассейне можно набирать уровень? Что за задачи делаете? Хотя бы примерно, чтобы понять к чему готовиться.
323 1347210
>>47203
Можно. Уровень отслеживает твой прогресс. Изучение похоже на типичный С-бугурт-тред: листы, байтоебля, массивы, компилятор. Изучи волл векстра веррор стандарты, ибо после другого языка на си будет перепрыгнуть тяжелее, у меня как у джава-хуя, например, была лютая любовь открывать тело функции в той же строке где она объявлена, из-за чего до 4 дня я получал нулевые отметки, машина даже не будет проверять твои задания, если что-то не по стандарту. Если в задании явно не написано, что определенную функцию/библиотеку/оператор можно применять в задании — значит применять его нельзя. Ну и большинство людей в твоих проектах будут дегенератами, надейся только на себя.
324 1347211
Задания не особо сложные. Если есть базовые знания алгоритмики и понимание типов данных, делать их труда особого не составит, тащемта проверяют они не то как ты пиздато луп с 80 условиями закрутишь чтобы он тебе судоку решил, а твой рост.
Первое же про что почитай — типы данных, большинство людей, что на бассейне, что в /пр нихуя не могут именно из-за того что в первую очередь не понимают с чем работают.
325 1347212
>>47211
Про типы данных жиза. Уже второй год пошёл, как я учусь, а до сих пор не понимаю, как флоаты хранятся. И даблы соответственно.
326 1347214
>>47198

>из-за которых на деле все сложнее, чем кажется.


Поясни за камни? Был на встрече, хотел спрашивать студентов, но мне сказала Руслана, что такие вопросы нельзя задавать.
327 1347215
>>47198
Куда планируешь на стажировку идти?
328 1347219
>>47215
Никуда не планирую, я пошел с другом новичком, ибо ему одному было стрёмно, социофоб хека.

>>47214
Я что ли ебу о чем ты там спрашивал?
329 1347223
>>47168
Выпускники претендуют?
Вас там будут учить 5 лет, и вы все там будете участвовать в реальных проектах, с настоящим рабочим конвейером, CI настроите, тестеры будут отдельной командой.
Или что, ты думал ты научишься писать крутойты так будешь думать код и тебя без опыта с одной бумажкой возьмут на сеньора?боже, вы такие наивные
330 1347283
>>47223
Умерь свой баттхерт, просто ты слишком тупой даже для теста на бассейн.
331 1347290
>>47283
Ну да, я-то уже работаю, зачем мне бассейн с псевдогарантиями.
332 1347291
>>47290
И всё таки, сколько вас там будут учить? Мне просто очень интересно что вам это даст и как поможет.
333 1347301
Какой смысл от указателей, кроме их использования в массивах? Часто вижу функции, которые на входи принимают именно указатель, даже если там всего-то одна переменная. Зачем?
334 1347302
>>47301
Чтобы изменить переменную внутри функции, например.
335 1347303
>>47301
В функцию всегда передается копия аргумента. ТО указатели нужны:
1. Чтобы копировать только указатель вместо большой структуры.
2. Чтобы изменения сделанные внутри функции отразились на переданном объекте.
3. Передача колбеков.
336 1347304
>>47303
Ну коллбеки это уже указатели на функцию, ему рановато это, пожалуй
337 1347305
>>47291
Зависит от скорости обучения от 1.5 года до 4. И всё бесплатно. А ты и дальше плати за свою шарагу.
338 1347308
>>47305
Я на бюджете.
Ну посмотрим, что там из вас сделают,школьные гении.
339 1347309
>>47303
Если передавать указатель вместо переменной, это значит что он создаёт копию этой переменной и будет занимать больше места в памяти? Значит надо всегда оперировать указателями, даже если нет необходимости менять аргумент?
Просто хочу понять когда имеет смысл использовать указатель, а когда нет.
340 1347312
>>46624
Почему ты решил в школе выучить невостребованную сишечку? Твоя голоа запилить патч для линуса?
341 1347313
>>47309
Представь что тебе надо передать один байт. Указатель на него будет занимать 4 байта на 32 битной системе.
342 1347338
https://www.youtube.com/watch?v=ej3EA451m2c
Школа-кун, что вы там сейчас программируете?
343 1347351
>>47338
Динамическое очко твоей мамаши
sage 344 1347378
Идите нахуй со своей ебучей школой.
345 1347411
>>47338

>вижел


Я пока не досмотрел почему, но мне кажется, что последние числа при делении 1/10 это просто данные с соседней ячейки памяти, не связанные с самим результатом деления.
346 1347456
>>46929

>винде не нужно, там есть студия


А на маке как?
347 1347459
>>47146

>Включи ворнинги, читай ворнинги!


ок. Только -Wall?
Какие еще полезные флажки нужны?
348 1347465
349 1347466
>>47465
fucking_school++
maxresdefault.jpg54 Кб, 1280x720
350 1347507
>>39788 (OP)

>- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)


700 страниц
351 1347519
Зачем нужен _Bool, если есть char?
352 1347529
>>39788 (OP)
Чем можно заняться на сишке? Что обычно пишется?
353 1347540
>>47507
Ну читай теперь хуле . Ты же в школе 21
354 1347542
Сап, анон. Возник такой вопрос.
Например, я задал структуру, например слова с переводом. Ввожу слово в консоли и перевод через '-', все эти строки записываю в файл.
Потом хочу прочитать этот файл и найти перевод нужного мне слова или наоборот. Как организовать поиск нужной строки по файлу без всякой лишней хуйни и динамической памяти(потому что еще не изучил, если она, конечно, в таком роде заданий нужна)?
355 1347557
>>47540

>Ты же в школе 21


Нет, с чего ты взял? Я похож на того кому меньше 30?
356 1347559
>>47542
Через связку fgets и sscanf думаю.
357 1347566
>>47557
Я не знаю на кого ты похож, я же не вижу тебя
358 1347588
Реквестирую небольшие программы на Си, написанные хорошим стилем. Ибо чую я, что костылить ООП в стиле map_get(mymap #m, const char #key, char #value) - хуевый путь.
359 1347598
>>47588
А в идеале - с использованием WinAPI, и являющиеся редактором конфигов или чем-то похожим.
360 1347708
>>47559
Можешь по простому объяснить чем scanf от sscanf отличается, а то про эти буферы нихуя не понятно
sage 361 1347726
>>47507
Основная проблема стандарта не в количестве страниц, а в языке, которым он написан. Вон мы в самом начале треда обсуждали дереференс, и если бы формулировки были четкими и ясными, да еще не размазанными по половине стандарта, а сгруппированными по смыслу, обсуждать было бы нечего.

>>47542

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


Делаешь на стеке буфер достаточно размера (килобайт, например), читаешь строки по одной с помощью fgets, попутно разбиваешь их на слово и перевод с помощью strtok, strcmp проверяешь совпадения (или используешь какую-нибудь нестандартную _stricmp, чтобы не учитывать регистр).

>>47588
Совершенно нормальный подход, так все и делают. Разве что я бы для удобства чтения привел в соответствие тип и префикс имени: mymap_get(mymap ptr map, ...).

>>47598

> с использованием WinAPI, и являющиеся редактором конфигов


Винда кэширует полупрожеванные .ini на некоторое время, когда ты делаешь GetPrivateProfileString/Int, поэтому можешь не заморачиваться и читать напрямую, не изобретая никаких внутренних мапов.

>>47708
scanf() читает из stdin (пользовательский ввод из консоли). sscanf() читает из сишной строки в памяти. Можешь считать, что scanf() - это что-то подобное fgets(buffer, ..., stdin), после которого идет sscanf(buffer, format, ...) хотя на самом деле оно не так реализовано.
362 1347838
Объясните мне, почему в 2019 году не убивают сразу за консольные приложения под Windows, все эти printf и scanf. Я понимаю линукс, там консоль юникодная, но под виндой, писать под этот артефакт DOS и не сдохнуть от позора, как так можно жить вообще?
363 1347839
>>47838
Да, ведь как охуенно потом комбинировать кучу оконных прилаг в скриптах.
364 1347840
>>47838
У - Уябывай в макакотред
365 1347874
>>47839
Да, ведь как охуенно натягивать сову на глобус юниксвей на винду, попутно обсирая оконные приложения в системе которая называется "Окна", и при этом думать что ты не дебил.
366 1347949
>>39788 (OP)
есть какие то книги или примеры по функциональному программированию, как правильно писать функции как струтурировать и тд или это все с опытом приходит ?
367 1347952
>>47874
Манька, в каком классе учишься?
368 1347969
>>47952
В 10
sage 369 1347975
>>47838

> линукс, там консоль юникодная


В винде тоже юникодная, в том смысле, что ты можешь выводить и UTF-16, и UTF-8, и все будет норм, только отобразится не все. Да и зачем тебе эмодзи и хангыль в консоли?
370 1348082
Стоит ли везде юзать unsigned int, если знаешь, что он не будет отрицательным? Например, в счетчиках?
371 1348168
>>47874
Да, ведь комбинировать программы это юниксвей, а не единственный способ иметь нормальную билдсистему, например.
372 1348183
>>48082
Сам так сперва ставил unsign, где типо положено; но стали возникать возникать трудноуловимые проблемы с приведением типов при арифметических операциях, теперь везде стараюсь ставить просто int.

Пишу glsl шейдер, хочу провести препроцессинг, но gcc, что только
расширения .c переваривает, можно как-то свой .vert сунуть?
..Такие флаги: gcc -E -C -P PRE.c -o RESULT.c .
373 1348187
>>48082
unsigned типы вообще чаще всего не для этого используются..
а чтобы байтики туда-сюда подвигать..
374 1348192
>>48183
Переименуй файл, кек, а потом обратно.
375 1348251
>>48187
Чтобы не мешался значащий бит?
>>48183

>Пишу glsl шейдер, хочу провести препроцессинг, но gcc, что только


Переименовать?
376 1348255
>>48251
Чтобы можно было безопасно битовые сдвиги делать и битовые поля на весь word.
377 1348257
>>48192
>>48251
Ну я хотел поизящнее. Уже нашёл "-<"
gcc -E -C -P -< shad/test.vert -o shad/test.vert_, препроцессинг есть
, но только когда делаю #include он не влезает, почему-то файл остаётся того же размера, наверное должен быть флаг для разрешения переразмеривания. Вообще как прочитал это UB кормить gcc не .c файлы, но glsl похож синтаксисом так, что.. надо ещё поковыряться.
378 1348272
>>48257

>Вообще как прочитал это UB кормить gcc не .c файлы, но glsl похож синтаксисом так, что.. надо ещё поковыряться.


Поищи тогда в тулзах от производителя видюхи. В glsl должен быть свой препроцессор же.
379 1348279
>>48272
По сравнению с gss`ишным он приметивен, там нет например #include который мне нужен.
380 1348313
>>48279
Что за gss?
381 1348332
382 1348333
>>47726

>Делаешь на стеке буфер достаточно размера (килобайт, например), читаешь строки по одной с помощью fgets, попутно разбиваешь их на слово и перевод с помощью strtok, strcmp проверяешь совпадения (или используешь какую-нибудь нестандартную _stricmp, чтобы не учитывать регистр).


Создал 2 массива строк через *, в цикле(пока не конец файла начал считывать строки через gets, сразу же делил через strtok_s, на всякий случай выводил в консоль 2 массива строк, все хорошо выводилось, но с поиском не получилось, потому что в следующем цикле введенная мной строка и эти массивы через strcmp не сравнивались. Теперь такой вопрос, как все строки в этих массивах сохранить, чтобы использовать их для сравнения в следующем цикле с введенной мной строкой?
383 1348344
>>48251

>Чтобы не мешался значащий бит?


чаще всего signed типы немного сложнее устроены.. если планируешь байтоебить, полезно будет таки узнать
384 1348346
Написал консольную программу под линукс и решил перевести её на windows, кроссплатформа так сказать.

ВО ВСЕХ ПРОЕКТАХ ТАКАЯ ХУЙНЯ С WCHAR_T ЖОПОЙ???
385 1348349
>>48346
Если я наделаю в своем проекте
#define char wchar_t
#define fputc fputwcc
И прочее, то я не буду сукой? Мне глаза режут эти названия просто.
386 1348355
>>48349
>>48346
АХАХАХ НАДО БЫЛО ПРОСТО СЕТЛОКАЛ НАЕБЕНИТЬ А Я ЧО ТВОРИЛ ПИЗДЕЦ РЫДАЮ НАХУЙ
387 1348360
>>48355
Смена локали ВНЕЗАПНО может сломать всякие atof. Они, сука, разделитель системный тянут, так что какой-нибудь 5.71 может считаться как 0,00.
388 1348376
>>48360
Так как тогда блять делать нормальную кросплатформенную залупу для консоли? У меня уже агрессия какая-то, я не думал, что на винде все так злобно с этим.
389 1348395
>>48376
Всегда можно сделать #ifdef и тупа разный код для платформ-специфик говна.
390 1348401
>>48395
Я так и делаю, но ощущаю жжение в одной точке.
sage 391 1348424
>>48082

> Стоит ли везде юзать unsigned int


unsigned int не стоит, из-за него компилятору на 64-битной системе придется генерировать лишние 1-2 инструкции (но если собирать с -frapv, то и для int тоже!). А вот size_t использовать можно и нужно, если итерируешься по индексам.

>>48333
Может быть, код покажешь?

>>48360

> Смена локали ВНЕЗАПНО может сломать всякие atof


Внезапно локаль - это не только и не столько про кодировки, а как раз про всякие десятичные точки. Меняй не LC_ALL, а только LC_CTYPE.

> Так как тогда блять делать нормальную кросплатформенную залупу для консоли?


Не бывает кроссплатформенных программ сложнее хелловорлда. Страдай и портируй.
392 1348431
>>48424

>генерировать лишние 1-2 инструкции


Всегда?
Screenshot2019-02-15-23-04-03-422name.antonsmirnov.android.[...].png121 Кб, 1080x2160
393 1348433
Почему такой свап не работает? Я думал он свапнет хотя бы первые цифры, но он не меняет ничего.
Куда вообще указывает адрес при создании переменной?
394 1348439
>>48433
Попробуй вдуматься в то, что ты делаешь.не работает, потому что и не должно, попробуй осмыслить, что происходит, когда ты передаешь в свою функцию адреса переменных
395 1348441
>>48439
Всё, сообразил. Думал прокатит.
sage 396 1348451
>>48431
Иногда. При вычислении эффективного адреса из-за возможности переполнения. А для int переполнения нет.

>>48433
Изучаешь укозатели брутфорсом? Ну удачи. В swap у tmp звездочку убери, у всего остального подставь.
397 1348458
>>48451
Я знаю как надо правильно свапать. Про указатели я сразу понял всё, просто экскрементирую.
398 1348467
>>48451

>брутфорсом


А как надо?
399 1348468
>>48424

>А вот size_t использовать можно и нужно, если итерируешься по индексам.


То есть for (size_t i = 0; i < size; i++) ...
И чем этот сайз отличается от unsigned int?
400 1348469
https://ideone.com/RkR8gm
Оцените класс по шкале от лоха до страуструпа.
401 1348472
>>48424

>не бывает кроссплатформенных программ сложнее хелловорлда. Страдай и портируй.


Но жавабляди...
402 1348473
>>48424

>Не бывает кроссплатформенных программ сложнее хелловорлда


А у меня программа уровня хелловорлда.
Она берет текстовый файл и с указанной частотой выводит слова в середине консоли (чтобы быстро читать). И даже на такой нупской задаче сосу с кроссплатформой.
403 1348477
>>48433
Рекомендую лучше termux поставить с nano или vim'oм вместе с клавой для кодинга. Удобнее в разы.
404 1348478
>>48468
Обычно size_t это тайпдеф на unsigned long какой-нибудь, лол.
405 1348480
>>48472
Там код на виртуальной машине выполняется, не сравнивай.
Безымянный.jpg43 Кб, 438x443
406 1348481
>>48424

>Может быть, код покажешь?


char sl[20], per[20], poisk[200], c[200];
6345345433.png1 Кб, 313x20
407 1348484
>>48481
БЫСТРОФИКС ЗАБЫЛ ПРО РАЗМЕТКУ В ПРОШЛОМ ПОСТЕ БЛЯ
408 1348488
>>48478
А тогда зачем его нужно в счетчиках юзать то?
sage 409 1348496
>>48468

> И чем этот сайз отличается от unsigned int?


На 64-битных машинах unsigned int 32-битный, unsigned long как получится (привет, Microsoft), а size_t везде 64-битный. Если компилятор положит 32-битное значение в 64-битный регистр, ему нужно заботиться об арифметике с переполнением, а вот положить 64-битный size_t в 64-битный регистр можно без дополнительных сложностей. К тому же, size_t - это хорошая подсказка читающему, что речь идет о размере объекта или индексе.

>>48472

> Но жавабляди...


if (osName.startsWith("windows 9"))
sage 410 1348517
>>48481
Так не получится. У тебя каждый следующий fgets затирает массив c новой строкой, а по-отдельности ты сохраняешь только указатели внутрь этого массива. Я тебе предлагал не совсем такой вариант. Я предлагал вводить искомую строку до чтения файла, потом читать построчно и сравнивать, храня в памяти только текущую строку, а не весь файл. Вот как-то так: https://ideone.com/MsdkUO

Но если ты очень хочешь читать файл в память, и тебя устраивает захардкоженное максимальное количество строк, то просто сделай двумерный массив со строками:
char c[20][200]; // 20 строк максимум, по 200 символов каждая.
и читай не в c, а в c[​i​], ну и strtok тоже делай для c[​i​]. Алсо, чтобы заработало, надо убирать \n в концах строк, их fgets оставляет.
411 1348526
>>48477
есть эумялторы терминала на ведроид помимо термукса?
412 1348633
>>48526
Есть, но это самый годный варик как по мне.
413 1348676
>>48517
в твоей программе размер 1024 что значит?
414 1348727
415 1348731
416 1348737
>>48676
1 КБ. Чтобы упростить вычесления, можешь задефайнить 1кб размер и прибавлять один для конца строки, если много чарстрингов то читать их так будет намного удобнее
417 1348789
>>48737
Можно ли

>word = strtok(line, "=");


>translation = strtok(NULL, "");


Заменить на
word = strtok_s(c, "-", &translation);
image.png20 Кб, 938x91
418 1348939
Что это значит?
419 1348942
>>48939
Что именно тебе непонятно? От тебя требуется написать программу, которая на вход получает текст с переносами и прочими вещами, но выводит на экран символы перевода строки видимыми. Простая софтина. Можешь несколькими путями сделать. Я б через регэкспы сделал.
420 1348951
>>48942
Я понял. "tab" и "\t" — два разных термина. Просто не самым понятным языком написано.

Буду писать на ифах, потому что в книге, по сути, ничего больше не представляли. Решил оставить все предыдущие знания всех предыдущих языков программирования и изучить Си с нуля.
421 1348955
>>48942
И да, спасибо за помощь, я раз 15 прочитал и не понял.
422 1348964
Указатель указывает на ячейку памяти какого размера? Вот к примеру я беру адрес числа, который занимает 4 байта. Указатель указывает на первый байт?
423 1348971
Решаю задачу на степике, не могу понять где проебался.
424 1348976
>>48971
Везде, твой код — не калькулятор, а хер знает что. Касаемо ошибки: чему равно d? Оно у тебя не инициализируется и не присваивается нигде.
425 1348977
>>48971
Ты в d не указал что он равен с.
изображение.png66 Кб, 1366x768
426 1348985
>>48971
Чет ты не совсем то написал. Разбирай.
427 1348993
>>48985
Добра тебе, понял.

Но и всем отписавшемся тоже спасибо.
428 1349049
>>48951

> Просто не самым понятным языком написано.



Это английский.

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



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

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



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

>>48955
Если с 3-го раза не понял, стоило бы отложить чтение на пару часов доя прогулки на свежем воздухе. И, да, пожалуйста.
изображение.png95 Кб, 554x189
430 1349097
Как решить? И где можно онлайн записывать код? Хочу попробовать свои силы.
int N;
scanf("%d", &N);
x +=2;
for (int i = 0; i <= N; i++){
printf("%d", i x);
x = x + i
N;
}
printf("%d", x);

return 0;

Правильная логика?
431 1349100
>>49097

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


https://ideone.com/
https://wandbox.org/

> решить


Что там решать, когда все до мелочей описано?

> Правильная логика?


Зависит от того, как ты объявил x.
432 1349107
>>49100

>Зависит от того, как ты объявил x.


Как инт. А как ещё можно?
Просто практикуюсь на задачах.
Спасибо за список сайтов.
433 1349161
>>48789
Мужик уходи с виндузятни и юзай джисиси или джибиди
434 1349175
Как программист на Си я специально посетил сей тред, чтобы недвусмысленно и решительно высказать своё "фи" так называемому компилятору ШЛАНГ. Надеюсь это говно никогда не взлетит и все так и будут сидеть на GCC и VC.
435 1349177
>>49063

Почему на картинке в одном месте переменная называется PTR а в другом месте - STR? Автор ёбу дал?
436 1349213
>>48964
Адрес указывает на байт. В памяти хранятся байты, других ячеек не бывает. Если тип указателя больше чем байт меньше не бывает, то указывает на начало - первый байт.
snap002060.png2 Кб, 397x100
437 1349219
>>49175

>программист на Си


Ты-то мне и нужен. Как объявить числовой литерал по аналогии со строковым?
.png15 Кб, 350x96
438 1349220
>>49219
Но зачем?
snap002062.png6 Кб, 464x259
439 1349221
Затем, что мне нужно много числовых последовательностей, но нахуй не нужно плодить в каждой строчке новые имена для них. Видишь на пикче всего одна переменная n для всего.
440 1349263
>>49177
Так, что ты знаешь про объявления указателей в Си? Ты же в курсе, что указатель это отдельная переменная ссылающаяся на другую переменную?

char str[] = “Hello”;
char *ptr;
ptr = &c;

Понятно должно быть без проблем, как по мне.
441 1349266
>>49263
Блядь, лоханулся, последняя строка должна быть ptr = &str;

>>49177
442 1349273
>>49263

>Ты же в курсе, что


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

>указатель это отдельная переменная ссылающаяся на другую переменную


Неправильно. Указатель ссылается на память, какую угодно, а вовсе не на переменные.
443 1349276
>>49273

> Указатель ссылается на память, какую угодно


вообще то в си указатели типизированные, за исключением спец случая void..
444 1349277
>>49276
>>49266

>ptr = &str+1;


На какую переменную теперь ссылается?
изображение.png11 Кб, 778x386
445 1349477
Где я ошибаюсь в логике решения?
446 1349484
>>49477
ну, он же циклически печатает
-5,-3,-1
изначальный -1 будет каждую итерацию инкрементироваться, а изначальный 4 будет каждую итерацию декрементироваться. Доходят до {1,2} и после этой итерации условие перестаёт выполняться.
447 1349508
>>49484
спасибо
изображение.png33 Кб, 849x718
448 1349691
Я опять с тупыми вопросами. Только начал изучать С, а мне сразу структуры пихают. Пиздец.
Седьмая строка - typedef struct rect_tag rect_t;
Тридцать четвертая строка - rect_t intersection(rect_t r1, rect_t r2) {

Что за тайпдеф стракт? Почему рект_т нужен?
Короче, я только новичок в программирование, а курс сразу кидает на амбразуры. Нахуй так жить.
449 1349696
>>49691

>typedef struct rect_tag rect_t;


сам нубас, но чутка понимаю структуры и кажется, что это какая-то мусорная строка. Зачем вообще объявлять структуру rect_tag, а потом тут же её переопределять как rect_t. Или так типо не нужно будет к её полям каждый раз прописывать доступ?
450 1349711
>>49277
У тебя во время присвоения значения произойдёт ошибка мисматч. Ты с типами данных разберись, у тебя каша в голове какая-то. Либо ты жирная зелень что скорее всего так и есть
451 1349716
>>49696

>Или так типо не нужно будет к её полям каждый раз прописывать доступ?


Что?
452 1349720
>>49691
Это чтобы не писать каждый раз struct, а писать просто rect_t
Часто используется еще такой способ
typedef struct {
....
} rect_t
453 1349748
>>49720
Типо рект_т становится функцией, которая может принимать аргументы? Или что?
454 1349756
>>49748
Если ты просто обьявишь структуру то тебе потом везде прийдеться писать struct rect_t, а с тем дерьмом можно писать просто rect_t. Почитай что такое typedef или просто игнорируй (пока) ту хуйню. Это чисто для удобства сделано, чтобы код почище был.
455 1349952
>>49756
Но для задачи по поиску пересечение двух прямоугольников это может быть удобно. Собственно моя задача об этом и была.
А что почитать? Не могу найти инфу доступную.
456 1349962
в си для структур было свое пространство имен, в с++ это уже не так
вот и все
457 1350006
>>49219
>>49221
В C99 и выше можно так:
int ∗n = (int []){1, 2, 3};
Но у тебя там кресты, а в стандартных крестах этого нет, но возможно, что твой компилятор это поддерживает в качестве нестандартного расширения.
Capture - Copy.PNG85 Кб, 1232x941
458 1350078

>1960


>Массив - ссылочный тип.



>2019


>Javamakaka: си устарел


>Java: массив - ссылочный тип

459 1350096
>>50078
Я правильно понял, что твоя функция берет аррей и умножает каждое число в нем на три?

Учусь читать код.
460 1350116
>>50096
Учись не читать код, а кодить, это ведь элементарщина.

мимо
461 1350121
>>49219
int *n= (int[]){1,2,3};
snap002063.png3 Кб, 623x113
462 1350208
>>50006
>>50121

>[BCC32 Error] : E2188 Expression syntax


Понятно, спасибо.
Напердолил через строки, хотя лишние нули в конце раздражают, да и сам пердолинг тоже. Чем эти петухи занимаются в своих комитетах, наверное шлюхами и коксом, что не могут в байтоёбском языке сделать определение байтов.
463 1350243
>>50208
Объясни, кто тебе мешает сделать static const uint8_t data1[] = { ... }; Литералы, которые тебе предложили, практически ничем от этого не отличаются. Это ведь протокол какой-то, неужели сложно имена переменным придумать? Ну или если компилятор умеет в __COUNTER__, можно обернуть в макрос и генерировать серийные номера.
464 1350247
>>49175

> Как программист на Си я специально посетил сей тред, чтобы недвусмысленно и решительно высказать своё "фи" так называемому компилятору ШЛАНГ. Надеюсь это говно никогда не взлетит и все так и будут сидеть на GCC и VC.



С разморозкой. Вынуждены вас огорчить, за время вашего криосна это поделие с байткодом таки хайпануло по-крупному и уже вот овер 5 лет как стало кококорпоративным стандартом в кресто-няшно-мейнстриме, а мелкомягкие таки сдались и поддержку оного шланга у себя в студии запилили.

Один только линус пока держится и еще пара красноглазых.
465 1350249
>>47588

> Реквестирую небольшие программы на Си, написанные хорошим стилем. Ибо чую я, что костылить ООП в стиле map_get(mymap #m, const char #key, char #value) - хуевый путь.



https://github.com/id-Software/Quake-III-Arena
466 1350262
>>48424
чел откуда ты столько знаешь, опыт или книги есть спецальные просто вот про unsigned int удивило , ты просто в компиляторе разбираешься круто или где то инфу взял ?
467 1350277
>>49175
>>50247
Вы такие умные, а рассказать что плохого в силанг можете? Мне правда интересно потому что пользуюсь им немного.
468 1350288
>>50277

>рассказать что плохого в силанг можете?



LLVM
469 1350289
>>50288
1. Выходит, со шлангом проблем нет, а проблемы с
LLVM? Почему же выше сказано наоборот?
2. Какие тогда проблемы с LLVM?
470 1350552
>>50078
Какой же у тебя лютый говнокод, просто пиздец. Взять хотя бы циклы, это же потенциальная база для выполнения операции переполнения буфера.

Если ты заранее знаешь размер массива, то на какой хуй ты не указываешь его длинну? Если ты знаешь длинну массива, то на какой хуй ты её вычисляешь в цикле? Идиота ты кусок ебаный. Делай цикл с отчётом от последнего элемента в массиве, это заодно примитивная оптимизация, которая требует меньше машинных операций и защита от переполнения массива.

Блядь, животное ты ебанутое и ты ещё будешь давать советы нубам не читать чужой код? Ох ты и чепуха ебаная. Твоё место в ЖЭКе на получение униформы и метлы. Ебать, что за дегроды растут.

>>50096
Анон, не слушай ты эту хуету >>50078 ебаную, он поц пиздючный, решил тут повыёбываться.
471 1350575
>>50552

> Какой же у тебя лютый говнокод, просто пиздец. Взять хотя бы циклы, это же потенциальная база для выполнения операции переполнения буфера.


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

> Если ты заранее знаешь размер массива, то на какой хуй ты не указываешь его длинну?


Собственно вот.

>Если ты знаешь длинну массива, то на какой хуй ты её вычисляешь в цикле?


В каком месте он вычисляет длину в цикле?

>Идиота кусок ебаный.


Давай без оскорблений, все когда-то начинали.

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


Вот тут объясни что ты имеешь в виду.

> Блядь, животное ты ебанутое и ты ещё будешь давать советы нубам не читать чужой код? Ох ты и чепуха ебаная. Твоё место в ЖЭКе на получение униформы и метлы. Ебать, что за дегроды растут.


Опять же, успокойся, пожалуйста.
472 1350578
>>50249

>небольшие


>третья Квака

473 1350583
>>50575
Во-первых, есть переменная i, которая на каждой итерации цикла прохождении от 0 до конца массива инкриминируется. В этот момент происходят операции вычисления длинны массива циклом, в условии хоть и задан предел, ро цэ переменная, значение которой можно поменять в любой момент и вот в этом проблема безопасности кода.

Во-вторых, обратный цикл от известного максимума до нуля не производит операций по вычислению длинны массива (он тупо уже не вырастет). Соответственно даже изменив на лету макс значение переменной во вреия выполнения не приведёт к чему либо страшному. Дизассемблируй оба цикла, чтобы нагляднее было.
474 1350601
>>50575
Мишань, иди на хуй.
475 1350634
>>50601
Я не он, а кто это?
476 1350661
>>50289
Нет никаких проблем. Просто у сектантов пригорает от лицензии шланга, она для них слишком свободная.

>>50583

> операции вычисления длинны массива


Это ты так сейчас обозвал практически бесплатную инструкцию lea?

> проблема безопасности кода


Какие-то фантазии. Если есть баг, позволяющий испортить my_size, то скорее всего, он же позволит испортить и i. Да, на проходе по массиву из конца в начало можно выиграть несколько байт размера кода, заодно проиграв в быстродействии, но вот на безопасность проход в обратном порядке не влияет вообще никак.
477 1350700
Блять смешно читать как вы, дегенераты не могущие посчитать сколько вам байт на введённый хело ворлд выделить на полном серьезе обсуждаете оптимизацию и безопасность кода. Юзаете си как входную точку для вайтивайти — не заебывайтесь по этому поводу, вам надо понять как работает, а не чтобы БЫЛА ВСЕ ПО СТАНДАРТУ
Ебланы сука ощущение что вы поиграться просто хотите, а не реально чтото понять
478 1350712
479 1350714
>>50712
Не пихай миллион форов, когда можно сделать вайлами
480 1350720
https://www.youtube.com/watch?v=zGv3hOORxh0
Как решать подобные задачи?
481 1350721
>>50714
Я привык фором делать всё. Никак не могу отвыкнуть. работаю в матлабе
482 1350722
>>50720
Определение площади пересечения прямоугольников?
Формализовать задачу. Определить закономерность, алгоритм. Разбить решение на элементарные части. Оптимизировать. И уже потом писать код.
483 1350723
>>50721
Да ничего плохого в форе нет, просто старые стандарты, ну и поэтому много задач алгоритмических в задачниках задуманы для решения вайлами, попробуй, хороший челлендж
484 1350761
>>50661
Не смеши. Если размер массива задан, то проход в цикле от последнего элемента до 0 безопасен тем, что динамически ты уже не поменяешь размер массива. Попробуй добавить элемент в массив во время выполнения цикла.

«Если есть баг» — не заданный размер массива и есть баг. В него динамически можно добавлять элементы.

В быстродействии обратный цикл выигрывает — это пускай маленькая, но оптимизация. И он таки быстрее, чем цикл с перебором элементов, который ты выше представил.
485 1350762
>>50700
Влажным негритянским пенисом тебе по губам, шлюшка ты белая. Проститутка, сгоняй на хуй и не возвращайся.
486 1350770
>>50762
Эй хуета из ШкОлЫюНеТфАкТоРи, иди нахуй. Я твой рот ебал, ебаный дебил. Нахуй ты что-то пишешь вообще ты же тупой как пень
487 1350781
>>50723
Если мне нужен счётчик и я знаю сколько раз провернется алгоритм, я всегда беру фор. Вайл только для неопределенного количества итераций и без счетчика.
Можно вайлом сделать то же что и фор, но зачем? Это ведь усложняет код.
488 1350797
>>50770
У меня за плечами МФТИ прикладной математики, щенок ты самообразованный. Раз папа сказал тебе пошёл нахуй, значит ты встаёшь и идёшь нахуй. Залупа ты мелкобуквенная.
images.jpeg9 Кб, 225x225
489 1350865
>>39788 (OP)
Аноны, подскажите. Надо сделать тест на 80-100 вопросов, в каждом вопросе только 2 ответа "да" или нет". Потом сравнивать набранные баллы. Например, если по по одной шкале(для определенной шкалы, существуют определенные вопросы, например, 2, 5, 19, 44, хотя все вопросы в тесте идут по порядку, т.е. 1, 2, 3, 4, 5...100.) 10-15 баллов - это средний показатель, то что ниже - низкий показатель, соответственно выше - высокий. В итоге, прошедшему тест на экран выводятся его результаты.
В гугле почитал, то что вопросы нужно грузить из файла, но в каком, собственно, виде это делать?
490 1350866
>>50797

>МФТИ прикладной математики


Мне колу и две картошки
491 1350874
>>50865
Запускаешь его с поданым в параметр именем файла и считыватешь, или пайпуешь и читаешь через стандарт инпут
492 1350876
>>50874
Можно про первый вариант поподробнее, а то я тупой. Как должен выглядеть файл?
1)Вопрос
-Да
-Нет
2)Вопрос 2
-Да
-Нет
и т. д.
Вот так?
493 1350880
ыа
494 1350902
>>50876
В строчке первым пусть идут номер вопроса, потом баллы за да и нет, а потом сам вопрос.
В консоли или куда там пусть выводятся вопросы по порядку, а как вводить ответ уже сам решай.
495 1350903
>>50902
Например
1,5,0,Ты пидор?
2,0,5,Твоя мать шлюха?
3,2,4,Почему мужчины смеются над блондинками?

Лучше разделитель запятая, потому что многие программы работают так. Например через екскль будет удобнее импортировать данные.
496 1350923
>>50903

>Почему?


>Да


>Нет


Хороший пример.
Поддерживаю идею.
497 1350930
>>50903
Если хочешь с другими вариантами ответа, то тут можно поставить число после порядкового номера которое будет указывать на количество вариантов ответа, а в последующих строках, собственно, сами варианты с весом ответа.
Например
1,3,Ты пидор?
5,Да
0,Нет
5,Немношк
498 1350994
>>50866
Твоя любимая цитаты с твоей любимой работы?
499 1351069
>>50761

> Попробуй добавить элемент в массив во время выполнения цикла


Попробуй делить на ноль в цикле. Попробуй по нулевому указателю писать. Если ты захочешь сделать глупость - тебе никто не запретит.

> В быстродействии обратный цикл выигрывает


Хуево дружит с кэшами и еще более хуево векторизуется.
500 1351113
Рейт. Считает площадь пересечения двух прямоугольников. Если пересечения нет, то площадь ноль.
https://pastebin.com/vwdDTVCK
Алгоритм придумал за минут 10-20, всего ушло 2 часа
501 1351114
>>51113
Алсо, толком не тестировал. Завтра протестирую. Но вроде работает.
502 1351116
>>51113

>main at the top of the file


шлангохуйня, плиз
503 1351124
>>51116
Не понимаю о чём ты.
504 1351131
>>51116
Но это vs-code с gcc. Где там шланг?
506 1363694
>>42851
Вот например целая специализация на edx:
https://www.edx.org/professional-certificate/dartmouth-imtx-c-programming-with-linux

Если тебе сертификат не нужен, то можно бесплатно всё проходить.

Решил тряхнуть стариной и вспомнить С, прохожу первый курс, оооочень всё медленно объясняют, вплоть до объяснения где на клаве найти спецсимволы.
Тред утонул или удален.
Это копия, сохраненная 15 марта 2019 года.

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

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