Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
#1

Впечатления от знакомства с чистым Си - C++

23.07.2015, 00:45. Просмотров 608. Ответов 16
Метки нет (Все метки)

Всем здрасьте, порядка полугода назад так захотел изучать Си++, что прочел 1000+ страничную книгу Лафоре об ООП + Си++. Книга понравилась, но почувствовал, что мне необходимо окунуться в самые дебри языка.

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

Прочитав все это я ужаснулся, насколько мерзопакасным может быть этот язык Си: ТОННЫ макросов, тонны всяких переименнованных стандартных типов (size_t, time_t и прочих), целая свалка функций под названием Стандартная библиотека. аргументы переменной длины, прототипы функций с неопределенными арг-ами.
ДИЧАЙШИЕ объявления функций и(ли) указателей подобно этому
C
1
double (*(*f)(double(*)(double)))(double)
????КАК ЛЮДИ НЕ СОШЛИ С УМА ОТ ЭТОГО ЯЗЫКА АДА????
http://www.cyberforum.ru/cpp-beginners/thread1765626.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2015, 00:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Впечатления от знакомства с чистым Си (C++):

Каковы ваши впечатления от книги Страуструпа Программирование на языке С++(третье издание)?
Начал читать книгу Страуструпа Программирование на языке С++(третье издание),...

Поле было чистым
Подскажите пожайлуста Что надо дописать и куда,чтоб при отсутствии в поле...

Знакомства
В компании из N человек составили список попарно знакомых. Так как дело...

как сделать винчестер чистым
Установлена ОС надо отформатировать винчестер чтобы он был как...

БП с очень чистым выходом, для звуковухи на 5V, 1А.
Есть у меня с недавних пор высококачественная звуковуха E-mu 0404 USB. Но нет к...

16
_Valera_
489 / 371 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
23.07.2015, 00:53 #2
А ты не читай то, что писали динозавры. Сейчас можно найти все что угодно: видео, презентации, сайты, даже игры(ну для java точно видел). Можно во всем разобраться доступно, вобщем. Собственно математику тоже можно почитать как в учебнике, математическим языком- и забросить этот бред, а можно посмотреть видео или почитать посты нормальных людей, а не роботов, и разобраться в теме. Короче дело не в языке, а в том Го*нопреподе который его писал, преподавал...и тд!
0
shmkv
652 / 371 / 57
Регистрация: 21.07.2015
Сообщений: 1,059
23.07.2015, 01:01 #3
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
????КАК ЛЮДИ НЕ СОШЛИ С УМА ОТ ЭТОГО ЯЗЫКА АДА????
А люди просто пишут на нем не задумываясь...

Добавлено через 2 минуты
На самом все эти "страшные штучки" очень даже нужны.
0
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
23.07.2015, 01:05  [ТС] #4
shmkv, разве нельзя писать ПО для микроконтроллеров посредством ООП?
0
shmkv
652 / 371 / 57
Регистрация: 21.07.2015
Сообщений: 1,059
23.07.2015, 01:09 #5
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
shmkv, разве нельзя писать ПО для микроконтроллеров посредством ООП?
Можно, но:
С ограничениями (без исключений и других некоторых вещей).
Не всегда в этом есть смысл.
И даже без исключений может возникнуть много всяких нехороших сюрпризов вроде невозможности инициализации списка глобальных конструкторов. В этом плане Си более предсказуемый и работоспособный под голым железом.
0
smartpointer
69 / 63 / 39
Регистрация: 17.02.2014
Сообщений: 264
23.07.2015, 01:16 #6
Дело все в том, что плюсы бесполезны без своей си совместимости - поскольку останутся только шаблоны и классы, многие штуки мне лично очень нравятся например #define
0
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,337
23.07.2015, 18:56 #7
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
разве нельзя писать ПО для микроконтроллеров посредством ООП
Просто они слабоваты в плане ресурсов, там до сих пор Ассемблер применяется.
0
Rius
Эксперт .NET
4500 / 2852 / 699
Регистрация: 25.05.2015
Сообщений: 8,809
Записей в блоге: 10
Завершенные тесты: 4
23.07.2015, 19:28 #8
Цитата Сообщение от nmcf Посмотреть сообщение
сто они слабоваты в плане ресурсов, там до сих пор Ассемблер применяется.
Нет, C/C++ уже широко распространён.

Цитата Сообщение от shmkv Посмотреть сообщение
????КАК ЛЮДИ НЕ СОШЛИ С УМА ОТ ЭТОГО ЯЗЫКА АДА????
Люди не обязаны применить все эти особенности в полном наборе, постоянно, в одном проекте, и даже вообще не обязаны применять когда-либо.
0
Excalibur921
750 / 425 / 68
Регистрация: 12.10.2013
Сообщений: 2,837
23.07.2015, 20:09 #9
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
????КАК ЛЮДИ НЕ СОШЛИ С УМА ОТ ЭТОГО ЯЗЫКА АДА????
А вы не читайте все подряд…это пустая трата времени. Да и чтение книги подряд без практики пустая трата времени. Нужно читать то что сейчас интересует и побольше практики. Если вы не используете знания они стираются.

Ну вот вы прочитали кучу книг.. и что вы теперь лютый гуру С?

На любой вопрос в форуме ответ знаете? Или вы ничего не умеете а только гордитесь количество прочитанных страниц и скорей всего больше половину из них не помните и\ или забудете через месяц? И в чем смысл?

Добавлено через 5 минут
Цитата Сообщение от nmcf Посмотреть сообщение
разве нельзя писать ПО для микроконтроллеров посредством ООП
Кстати помню когда мучал ассемблер для микроконтроллеров была найдена прога которая из блок схем логики принятой в информатике строила код на ассемблере...получилась наглядность логической схемы и скорость ассемблера. Может уже и есть такое не знаю =).А то все то С то ASM и мыкайся . А тут оп два в одном…
0
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
23.07.2015, 20:33  [ТС] #10
Excalibur921, помню все, о чем читал. Стараюсь читать книги очень вдумчиво
0
castaway
Эксперт С++
4926 / 3033 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
23.07.2015, 20:47 #11
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
помню все, о чем читал.
Главное не только помнить, но и понимать.
1
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
23.07.2015, 21:04  [ТС] #12
castaway, не считаю нужным доказывать здесь свое понимание. Например в последней книге для меня было новостью узнать про классы перегрузки имен (имена (переменных, ф-ций, имена typedef), метки goto, имена макросов, теги структур и идентификаторы полей). И вобщем много всего нового узнал, чего в обычных учебниках по Си++ не сыщешь, хоть он почти что и считается надмножеством Си
0
Rius
Эксперт .NET
4500 / 2852 / 699
Регистрация: 25.05.2015
Сообщений: 8,809
Записей в блоге: 10
Завершенные тесты: 4
23.07.2015, 21:11 #13
Ferrari F1, и не надо доказывать. Тем, кто видел студенческие работы, и так очевидно, что ни опыта, ни понимания у них ещё нет.
0
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
23.07.2015, 21:17  [ТС] #14
Rius, ну естественно у меня нет опыта в практическом применении си(++), ведь я ни разу не программировал микросхемы, или что там делают здешние форумчане, у кого репутация за тыщу и 5 - 10 летний опыт?

Для меня достаточным пока является просто осознавать свое уверенное понимание листингов. А то, как им в деле орудовать - это дело десятое
0
castaway
Эксперт С++
4926 / 3033 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
23.07.2015, 21:18 #15
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
классы перегрузки имен
Именно это я и имел в виду.
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
не считаю нужным доказывать здесь свое понимание
Согласен. Это ни к чему.
0
Aash
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 4
23.07.2015, 21:18 #16
))
на первом курсе было заданием создать 2-х мерный динамический массив))
Все это делали на маках, там где дискету надо в корзину выкинуть чтоб достать)))
0
hoggy
Заблокирован
24.07.2015, 13:14 #17
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
double (*(*f)(double(*)(double)))(double)
????КАК ЛЮДИ НЕ СОШЛИ С УМА ОТ ЭТОГО ЯЗЫКА АДА????
тут все прекрасно читается на самом деле.
вероятно вы ещё не видели код, настоящий адь и содому.

http://rextester.com/OXPKL5710


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
 
 
double foo(double v) { return v; }
 
typedef double (*pFunc)(double v);
 
pFunc baz( double f(double v)  )
{ 
    return f;
}
 
 
 
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    
    // объявление переменной pointer2function,
    // которая является указателем на функцию, 
    // которая принимает указатель на функцию
    // вида: double f(double v)
    // и возвращает в качестве результата указатель на функцию с такой же сигнатурой
    
    
    double (* (*pointer2function)(double(*)(double))) (double)  = baz;
        
    std::cout << "result = " << pointer2function(foo)(20.5) 
        << std::endl;
    
    
    // такие вещи нужно знать, если хотите состояться с/с++ программистом\
    // хотя бы потому, что спрашивают на собеседованиях
    // существуют простые алгоритмы разбора типа
    // [url]http://habrahabr.ru/post/116255/[/url]
   
    
    // альтернативный вариант:
    
    // объявляем тип указателя на функцию
    // который возвращает указатель на функцию, и принимает указатель на функцию
    typedef pFunc( *pointer2function_t)( pFunc);
    
    
    pointer2function_t example = baz;
    
    std::cout << "result = " << example(foo)(20.5) 
        << std::endl;
    
    
    // очевидно, что альтернативная запись намного проще читается
    // и именно так поступают и сишники, и плюснутые.
    // никто в здравом уме не пишет многоэтажные типы.
    
}
0
24.07.2015, 13:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2015, 13:14
Привет! Вот еще темы с решениями:

Преобразователь 12В ->220В с чистым синусом
Друзья, Я тут в рамках программы самообразования думаю собрать subj. Для...

Первый опыт знакомства с Qt
Ребята, подскажите пожалуйста по поводу сборки Qt под Visual Studio 2005. Я...

Начало знакомства с языком
1)Интересно веб программирование, выбор пал на Java Script, но сколько бы не...

Преимущества EntityFramework над чистым ADO.NET
Какие есть существенные в разработке преимущества, если не рассматривать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru