Сообщество - Лига программистов C/C++
Добавить пост

Лига программистов C/C++

63 поста 4 766 подписчиков

Популярные теги в сообществе:

Статические переменные вместо глобальных на Си/Си++

Использование глобальных переменных считается дурным тоном, потому что создает много проблем. Избежать их можно с помощью ключевого слова static, которое создает статические переменные.

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

Статические переменные вместо глобальных на Си/Си++ Си++, Си, C++, Программирование

Переменная A располагается в глобальной области памяти, но имеет локальную область видимости (в пределах функции fun). То есть переменная сохраняет свое значение между вызовами функции. Начальное значение переменной равно 10.

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

Статические переменные вместо глобальных на Си/Си++ Си++, Си, C++, Программирование

Область видимости переменной A — только этот файл. Никаким способом к ней нельзя получить доступ из других файлов. Функции setA и getA позволяют получить и установить значение переменной.

На Си++ переменную дополнительно можно обернуть классом.

Показать полностью 1

Простая задачка по C++

На этот раз действительно простая и действительно по С++. Чтоб решить, нужно знать про ввод вывод и файловый в часности.

Итак, дано:

http://pastebin.com/rjPcfqgv

Задача:

Почему в файл выводится сначала "second string", а затем "first string"? И как это исправить?


Проверить можно тут:

http://www.tutorialspoint.com/compile_cpp_online.php?PID=0Bw_CjBb95KQMSVJoNDFzSVRMaTg

жмакаем компиле, экзекьюте и пишем в консоль cat file чтоб увидеть содержимое файла.


P.S. на всякий случай скажу, что код с ошибкой и использовать его в продакшене да и вообще хоть где-нибудь нельзя.

Ищу книги...

Господа! Ищу книги: Айвор Хортон - Visual C++ 2010. Полный курс  и  Буч Гради Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Возможно кто-то их уже перерос, я бы с удовольствием купил. Скачать не проблема, но хотелось бы завладеть в бумажном виде.

Стилистические Войны программистов ( Часть 2 )

Мой предыдущий пост посвященный стилистическим войнам программистов к большому удивлению был очень тепло встречен пикабушниками и привел к немалому числу оживленных обсуждений в комментариях. :)

Поэтому я решил воплотить в жизнь еще пару-тройку жизненных картинок в этой тематике :)


// [0]

Стилистические Войны программистов ( Часть 2 ) Программирование, C++, Юмор, Длиннопост

// [1]

Стилистические Войны программистов ( Часть 2 ) Программирование, C++, Юмор, Длиннопост

// [2]

Стилистические Войны программистов ( Часть 2 ) Программирование, C++, Юмор, Длиннопост

// [3]

Стилистические Войны программистов ( Часть 2 ) Программирование, C++, Юмор, Длиннопост

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

Стилистические Войны программистов ( Часть 2 ) Программирование, C++, Юмор, Длиннопост
Показать полностью 5

Стилистические Войны программистов

Когда-то давным давно я склепал и залил в инет несколько юмористических картинок касательно стилистики написания кода на C++, которые мгновенно разлетелись и вызвали тогда много срача жарких дискуссий на эту тему... И вот перерывая свои старые и пыльные архивы я сейчас снова на них случайно наткнулся. Поэтому решил поделиться с вами полной подборкой. :)

Не сочтите за баян, надеюсь, что кого-нибудь вдохновит и он выложит в комментариях свои достойные варианты на эту тему :))

// [0]

Стилистические Войны программистов Программирование, C++, Юмор, Длиннопост

// [1]

Стилистические Войны программистов Программирование, C++, Юмор, Длиннопост

// [2]

Стилистические Войны программистов Программирование, C++, Юмор, Длиннопост

// [3]

Стилистические Войны программистов Программирование, C++, Юмор, Длиннопост

А вот вариант от некоего пользователя под ником Ges( если ты есть на Пикабу, то респект тебе - долго смеялся с твоей картинки :)) )

Стилистические Войны программистов Программирование, C++, Юмор, Длиннопост

P.S. Баянометр ругался на одну отдельно выложенную картинку :)

Показать полностью 5

Какая IDE лучше для разработки на C++?

Подскажите, какая вам больше нравится и почему?

Начинающий проффесионал

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

Сможете найти на картинке цифру среди букв?

Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi

Сможете найти на картинке цифру среди букв? Игры, Награда

Как начать понимать указатели

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

Любая программа перед тем как начать исполняться полностью загружает свой код в ОЗУ или проще говоря оперативную память. Оперативная память в урощенной схеме представляет из себя таблицу адресов и значений.


Есть такой термин как разрядность и применяется он для ОС, шины, адресного пространства. Он означает, сколько одновременно бит может обработать устройство. Вот один из примеров оперативной памяти с адресной разрядностью в 8 бит(2^8 = 256 адресов) и разрядностью шины 16 бит.

Как начать понимать указатели Указатель, Память, Программирование, C++, Длиннопост

Давайте посмотрим на примере простой программы, как это может работать в упрощенной схеме.

Как начать понимать указатели Указатель, Память, Программирование, C++, Длиннопост

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

Как начать понимать указатели Указатель, Память, Программирование, C++, Длиннопост

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

Вот мы и подошли к самому главному - указатель, это совершенно обычная переменная которая хранит АДРЕС. У нас есть переменные, которые хранят числа, которые хранят буквы, которые хранят строки. А теперь просто появились переменные, которые хранят адрес.


Что бы ОБЪЯВИТЬ указатель, достаточно указать перед именем переменной звездочку. Это даст понять, что в этой переменной вы будете хранить адрес определенного типа. На самом деле хранение в памяти значений намного сложнее, поэтому компилятору надо знать тип хранимого адреса, что бы правильно его получить из памяти.


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

& - взятие адреса у какой-либо переменной

* - получение значение по адресу в указателе

Как начать понимать указатели Указатель, Память, Программирование, C++, Длиннопост

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


Удачи в обучении.

Показать полностью 3
Отличная работа, все прочитано!