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

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

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

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

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

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

Впечатления от прочтения стандарта
Сколько у вас уходило времени на прочтение стандарта? Тяжело ли он читается?...

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

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

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

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

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

Добавлено через 2 минуты
На самом все эти "страшные штучки" очень даже нужны.
0
Ferrari F1
792 / 522 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
23.07.2015, 01:05  [ТС] 4
shmkv, разве нельзя писать ПО для микроконтроллеров посредством ООП?
0
shmkv
1207 / 430 / 59
Регистрация: 21.07.2015
Сообщений: 1,113
23.07.2015, 01:09 5
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
shmkv, разве нельзя писать ПО для микроконтроллеров посредством ООП?
Можно, но:
С ограничениями (без исключений и других некоторых вещей).
Не всегда в этом есть смысл.
И даже без исключений может возникнуть много всяких нехороших сюрпризов вроде невозможности инициализации списка глобальных конструкторов. В этом плане Си более предсказуемый и работоспособный под голым железом.
0
smartpointer
69 / 63 / 39
Регистрация: 17.02.2014
Сообщений: 265
23.07.2015, 01:16 6
Дело все в том, что плюсы бесполезны без своей си совместимости - поскольку останутся только шаблоны и классы, многие штуки мне лично очень нравятся например #define
0
nmcf
6408 / 5670 / 2581
Регистрация: 14.04.2014
Сообщений: 23,997
23.07.2015, 18:56 7
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
разве нельзя писать ПО для микроконтроллеров посредством ООП
Просто они слабоваты в плане ресурсов, там до сих пор Ассемблер применяется.
0
Rius
Эксперт .NET
5077 / 3297 / 807
Регистрация: 25.05.2015
Сообщений: 10,153
Записей в блоге: 11
Завершенные тесты: 4
23.07.2015, 19:28 8
Цитата Сообщение от nmcf Посмотреть сообщение
сто они слабоваты в плане ресурсов, там до сих пор Ассемблер применяется.
Нет, C/C++ уже широко распространён.

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

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

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

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

Для меня достаточным пока является просто осознавать свое уверенное понимание листингов. А то, как им в деле орудовать - это дело десятое
0
castaway
Эксперт С++
4934 / 3039 / 455
Регистрация: 10.11.2010
Сообщений: 11,119
Записей в блоге: 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

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

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

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


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

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

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