Turbo C Programming For The Pc By Robert Lafore Pdf Editor

Posted by admin
  1. Turbo C Programming For The Pc By Robert Lafore Pdf Editor Скачать

The waite groups turbo c programming for pc robert lafore PDF. Turbo C Programming For The Pc By. Pc By Robert Lafore Pdf Merge.

Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне. Что читать: - Классика от Отцов: - Годное пособие для гуманитариев: - Немного примеров хорошего стиля: - ООП, например: - Стандарт ISO/IEC 9899:1999 (он же C99): (драфт) не драфт ищем на торрентах - Стандарт ISO/IEC 9899:2011 (он же C11): (драфт) - man/Dash/zealdocs Чем конпелировать: - Очевидный GCC. clang: оче годно, батя рекомендует. Intel C Compiler: оптимизации, тысячи их.

Visual Studio 2015 Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне 'есть все, что тебе понадобится в реальном проекте плюс кривая библиотека'. Анализатор кода в комплекте. Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.

TCC: очень маленький компилятор с багами и неполной поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке. Что еще почитать: FAQ из comp.lang.c.

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

Читать после K&R. Harbison, Guy L. 'C: A Reference Manual, 5th Edition' (2002) Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера. Peter Van Der Linden 'Expert C Programming. Deep C Secrets' (1994) 'Си: грязные истории'.

Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? У нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит). Ben Klemens '21st Century C: C Tips from the New School' (2012) Stephen G. Kochan 'Programming in C (3rd Edition или 4th Edition, если найдется)' (2014) MISRA Ltd.

'Guidelines for the Use of the C Language in Critical Systems' (2013) Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма.

Также можно посмотреть Еще более длинный список: Прошлые треды: -Шапка. Аноним 25/11/16 Птн 21:43:15 А что тебе нужно конкретно? Кодирование и декодирование - это 10 строк, но можно и либу найти. Литералы в исходнике с кодировкой UTF-8 и так будут UTF-8, но в C11 можно зафорсить u8'text'.

Или ты Unicode имел в виду? Что не так сделал? Забыл после printf сделать еще раз цикл по выборке, где ты будешь сравнивать элемент с каждым из средних и увеличивать соответствующий счетчик, элемент меньше среднего. А if-ы свои в последних 8 строках убери, неправильные они, ты там погоду на Марсе выводишь a​i​ читает за пределами массива. Аноним 29/11/16 Втр 15:44:56 g00ru, только не бейте, а помогите советом. Решил я значит написать свой велосипед и по уму разбил его на несколько файлов/модулей, каждый из которых естественно разделен на.h и.c И с линковкой (на удивление) проблем нет, а вопрос скорее философский.

Вот у меня модуль вывода на экран, вот модуль обработки ошибок и создания логов, а вот допустим int main. В main есть вызов функции текстового вывода на экран, и функции обработчика ошибок. В модуле текстового вывода на экран - есть вызов обработчика ошибок, и (наверное догадались) в обработчике ошибок есть вызов вывода на экран! Ошибок компилятор не выдаёт, даже Wall и Wextra. А вопрос в следующем, как это все проинклюдить друг к другу чтобы не запутаться. Я увидел и опробовал два варианта: все хэдеры описать в одном великом хэдере и инклюдить его одного. Но этот хэдер скоро распидорасит как того мальчика из Акиры.

Второй вариант: подключать только те хэдеры что нужно туда и только туда куда нужно. И комментировать как бешеный. Если не вызывать хэдеры из хэдеров, то колец не возникнет, и все работает. Но мне кажется что-то не так. Сможете ли вы предложить вариант лучше? Аноним 02/12/16 Птн 23:39:26 Ну во-первых пересмотри серию Cs50 где говорят о сортировке (в 2015 была третья, сейчас не знаю) Во-вторых хотел бы сам узнать мнение анонсов об этом курсе. В третьих, если сдаёшься смотри под спойлер.

Тебе нужен такой же вложенный цикл как те что уже есть. Во внутреннем цикле берёшь текущее число и сравниваешь с тем которое у тебя будет считаться максимальным (изначально можно взять ноль.) То есть дословно берёшь элемент массива и сравниваешь его с нулем. Он больше нуля? Тогда записывашь его вместо нуля. Смотришь следующий и сравниваешь с тем что у тебя записано вместо нуля. Аноним 04/12/16 Вск 22:37:25 схема массива Начнем с того, что тебе никто не обещал, что указатель влезет в int (и он таки не влезает на 64-битных системах). Ты бы хоть (u)intptrt использовал что ли или индексы вместо указателей хранил бы.

Хотя лучше не стоит, этот подход ущербен целиком и полностью. Поэтому начиная со строки 20 можно уже не читать. Заодно можешь пояснить, зачем городить комментарии про схему массива, когда можно написать эту 'схему массива' описать средствами языка, т.е., структурами? Причем не только описать, но и использовать. Аноним 05/12/16 Пнд 01:23:36 Начнем с того, что тебе никто не обещал, что указатель влезет в int (и он таки не влезает на 64-битных системах). Ты бы хоть (u)intptrt использовал что ли Не знал как это работает. Буду изучать.

зачем городить комментарии про схему массива, когда можно написать эту 'схему массива' описать средствами языка, т.е., структурами? Причем не только описать, но и использовать. По условию задачи нужно реализовать 3 стека в рамках одного массива. У меня не получилось придумать структуру, в которой было бы меньше 3 массивов: сами стеки, указатели на верхушки и размерности, а это выходит за рамки условий. Не уверен, но слышал массивы хранят свои элементы в памяти друг за другом, а структура с динамически выделенными областями будет распределена по памяти как получится.

И имеет ли это вообще значение? Аноним 05/12/16 Пнд 01:40:34 По условию задачи А, ну если такая странная задача, то индексы вместо указателей храни, и норм вполне.

Можно хранить минимальный индекс и максимальный индекс для каждого стека вместо указателя и длины, как у тебя. структура с динамически выделенными областями будет распределена по памяти как получится. Да, все правильно. Если несколько раз вызовешь маллок, даже при самом удачном стечении обстоятельств между областями памяти, скорее всего, будут служебные данные аллокатора. Аноним 05/12/16 Пнд 23:55:54 1) В строке big у тебя закодирован адрес возврата 0x401001, а не 0x401000, т.е., ты пропускаешь push ebp, и после возврата стек пидорасит.

2) main возвращается в CRT-шный стаб, который чистит стек (3 аргумента для main) и вызывает exit. Твой main возвращается в test, а test в результате пытается вернуться по адресу, численно равному argc.

И вообще, с такими проблемами возьми OllyDbg/x64dbg и потрейси, не нужно вычислять в уме и гадать на кофейной гуще, почему падает, когда можно просто посмотреть. Аноним 14/12/16 Срд 23:58:04 Маллочить или не маллочить, разницы нет, память она и та же. Если я создаю массив указателей вне мейна или любой другой функции, то память занимается только после маллока всех элементов массива. Если же я создаю массив, например, в мейне, то память занимается сразу хотя так было в первый раз, теперь просто сигфолт непонятно из-за чего, но не суть. Это можно как-то объяснить? Компилятор gcc.

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

Аноним 15/12/16 Чтв 13:45:52 Можно. Это ты писал свой графический тулкит для прыщей? Но тогда я, скорее, изучал теорию вывода графики в прыщиксе, написанием тулкита это назвать сложно. Сейчас же прорабатываю логику самого тулкита. Пока я пришёл к тому, что днём за днём пизжу всё у GTK. Вероятно в итоге у меня выйдет облегчённый GTK с примесью FLTK. А как ты меня задиванонил?

То есть у тебя указатели будут только на другие указатели указывать? Данные вообще не будет? Эти указатели будут указывать на другие указатели, которые уже будут указывать на что-то осмысленное.

Сколько будет вторых указателей я не знаю, отсюда и создание массива указателей с запасом. Аноним 15/12/16 Чтв 14:47:46 хотя, похоже, придётся делать именно так Пришлось, всё таки это лучший способ, спасибо.

Ты так нихуя не прочитал и никаких курсов не прошёл, судя по всему. Я не могу ещё раз наворачивать книги, курсы. Я это уже делал!

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

Ну ладно, ладно, извини. Аноним 15/12/16 Чтв 16:50:53 operator встроен для си подобных масивов - эт о фактически операция над поинтерами T& operator(T, std::ptrdifft); T& operator(std::ptrdifft, T); и если вспомнить правила арифметики для указателей то a это то же самое что (a + i) For every object type T (possibly cv-qualified), the following function signature participates in overload resolution: T& operator(T, std::ptrdifft); T& operator(std::ptrdifft, T ); The non-pointer operand may be any expression of integral or unscoped enumeration type, it is implicitly converted to std::ptrdifft. The expression E1E2 is exactly identical to the expression (E1 + E2), that is, the pointer operand (which may be a result of array-to-pointer conversion, and which must point to an element of some array or one past the end) is adjusted to point to another element of the same array, following the rules of pointer arithmetics, and is then dereferenced.

When applied to an array, the subscript expression is an lvalue if the array is an lvalue, and an xvalue if it isn't (since C11). When applied to a pointer, the subscript expression is always an lvalue. The type T is not allowed to be an incomplete type, even if the size or internal structure of T is never used, as in &x0. Аноним 15/12/16 Чтв 20:58:11 Пацантрэ, поясните вот мне за msys2 и mingw. Поставил их - msys2 не видит mingw, хотя путь в переменную среды записал, в fstab тоже прописал. Пишу gcc, он мне говорит, что не найдена такая команда. Из msys2 можно пакеты поставить, но интернетов нет, а в оффлайне хуй знает как это сделать.

The

Ну ладно, в mingw есть msys1, допустим, им хочу собрать проект. Есть исходники, есть cmakelist. С visual studio все понятно - cmake сбацает проект, открою да сконпелирую. А как всё то же самое повторить с mingw? Аноним 16/12/16 Птн 08:35:17 Помогите с задачами на C 1.

Найти частное произведения и суммы нечетных делителей натурального числа. 2.Определить в одномерном массиве число соседств из двух положительных чисел.

Дана действительная матрица размером m на n. Определить числа b0, b1.bn равные соответственно разностям наибольших и наименьших значений элементов строк.

Даны два слова. Для каждой буквы 1-го слова определить, входит ли она во второе слово. Повторяющиеся буквы 1-го слова не рассматривать. Имеется текстовый файл. Найти длину самой длинной и самой короткой строки; b. Найти номера самой длинной и самой короткой строки; c. Напечатать самую длинную строку.

Если таких строк несколько, то напечатать вторую; 6. Имеется текстовый файл. Переписать в другой файл те его строки, в которых имеется более 30-ти символов и содержащие более 2-х пробелов. Наверняка заебавший всех ньюфаг-аутист вновь вкатывается в тред в надежде на то, что всё таки не полностью заебал Анонимуса. УКАЗАТЕЛИ Пикрелейтед. У меня есть тип type. В мейне я создаю указатель с этим типом, маллочу ему памяти и пишу в i shit'a десяточку.

Далее отправляю этот указатель в функцию pizda где создаю ещё один указатель govno, также маллочу ему памяти и пишу i shit'a в i говна, записывая затем указатель govno в нулевой элемент массива с тем же типом type. Функция отработала, возврат в мейн, где отсирается массивный i, затем меняется i shit'a на двадцарик и снова отсирается массивный i. В обоих случаях массивный i выдаёт '10', я же хочу чтобы его значение менялось с изменением переменной i в указателе shit. Грубо говоря я хочу в функции pizda присваивать ссылку на переменную i в указателе shit переменной i в указателе govno. Именно ссылку а не значение. И потом всё это нужно присвоить массиву, чтобы ссылка сохранилась. Как это блядь сделать?

Turbo C Programming For The Pc By Robert Lafore Pdf Editor Скачать

Я ебусь с этим уже не первый час, перечитываю Кернигана и Ритчи, нихуя не понимаю и снова ебусь. Анон, помоги пожалуйста. Аноним 17/12/16 Суб 07:11:09 Хотя можно что-нибудь начать пилить совместно - утилиту какую-нибудь или гайд по сишечке уровня /pr/ Совместно писать код с анонимными пидарасами?

Нахуй надо, нервы дороже. Гайд уже лучше, но сишка такая примитивная, что я даже не знаю что там можно разжевывать. Вы мне лучше скажите какой пидарас делал поддержку ассемблерных вставок в ссаном гцц? Я такого уебанства никогда в жизни не видел. Как хочешь, так и пиши.

Страна еще достаточно свободная для этого. А теперь выдохни и напиши минимальный код, который вызывает у тебя непонятки. Непонятки опиши одним, максимум двумя предложениями; четко и по сути. Я тратить время на твой поток сознания не намерен. Аноним 17/12/16 Суб 08:16:45 Впизду тебя. Мне еще виртуалку дописывать, так что вот как ты должен был думать: Что такое 'матрица' в контексте моей задачи? Набор чисел, разделенный на N строк и M столбцов.

Что такое центральный элемент матрицы? Число расположенное на пересечении N/2 + 1 строки и M/2 + 1 столбца. Вот я даже нарисовал, пока в голове держать такое не натренировался. Хм, а что если N и/или M четные? В зависимости от условия задачи либо решения нет, либо на такой вариант кладется хуй (считаем как обычно), либо, либо и т.д. Ок, как представить матрицу в программе? Например как непрерывный кусок памяти.

Тогда (зависит как заполнять будешь) i, j элемент это mymatrixN.i + j. Аноним 17/12/16 Суб 13:00:47 глубинного понимания энтрилевельный курс для людей, которые до этого компьютера не видели как это все применить на практике - да похуй им А вот тут дело в тебе. Тот же файналпрожект там - как раз сделать хуйнюшку для реального мира. Я ебусь с этим уже не первый час мне надоест, проебу время, проебу силы, проебу мотивацию Знаешь, почему тебе так сложно помогать, и никто этого не может сделать с первого раза? Потому что до тебя никто и не думал, что твоя проблема вообще может существовать. И это не потому, что ты делаешь что-то сложное и необычное. Непонятки опиши одним, максимум двумя предложениями; четко и по сути.

Я тратить время на твой поток сознания не намерен. Ладно, действительно не стоило так делать стыд, я просто очень устал. Бля, какой же я мудак. Посмотри на скриншот, в функции main создаётся указатель var1 с моим типом, далее var1-i присваивается значение и var1 отправляется в func. Там делается всё тоже самое с var2, только var2-i присваивается var1-i. Мне нужно чтобы var2-i присваивалось не значение var1-i а ссылка на него. Чтобы при изменении var1-i и последующем обращении к var2-i далее я запишу его во внешний массив я получал обновлённое значение var1-i.

Важно: В любой момент я должен мочь записать в var2-i свои данные и сбить указатель на var1-i, затем и malloc.