Задать вопрос
  • Что цыркает внутри ноутбука (возможно кулер)?

    opium
    @opium
    Просто люблю качественно работать
    цырканье — это обычно пылевой комок или мелкий мусор под лопастями крыльчатки. открой снова и продуй сжатым воздухом, скорее всего уберёт сразу.
    Ответ написан
    Комментировать
  • Что цыркает внутри ноутбука (возможно кулер)?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, это мог сломаться как сам кулер, так и схема, которая его питает (хоть и маловероятно). Возможно на кулер выдаётся не 5 вольт как в USB, а меньше. Надо проверять выдаётся ли какое-то напряжение на разъёме питания кулера и какое оно там, а так же смотреть запускается ли при этом сам кулер. Это можно сделать с помощью мультиметра и запуская ноутбук в полуразобранном состоянии. Возможно в кулере забились пылью и грязью подшипники или они просто износились (если они там вообще есть) и ему банально не хватает питания на раскрутку из-за повышенного сопротивления. Что и может создавать такой звук. Имеет смысл просто заменить кулер на новый.
    Ответ написан
    Комментировать
  • Заголовочные файлы в Си нужны только для интерфейса?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ну есть же всё в гугле и в манах, где очень подробно всё расписано и даже с примерами: https://ru.wikipedia.org/wiki/Заголовочный_файл
    Ответ написан
    3 комментария
  • Заголовочные файлы в Си нужны только для интерфейса?

    @Mercury13
    Программист на «си с крестами» и не только
    Хедеры служат, чтобы два c-файла — они называются «единицы трансляции» — компилировались по отдельности. Это основное назначение той разновидности include-файлов, которые называются хедерами.

    Можно в h-файлы посадить и тела функций, только убедиться, что каждое тело ровно в одной единице трансляции — есть такой подход под названием «одна единица трансляции», и он существует у больших редко перекомпилируемых библиотек, чтобы перекомпиляция была покороче.

    Подключение main.c←math_functions.h служит, чтобы сказать компилятору: а где-то в другом месте есть эти функции.

    Подключение math_functions.c←math_functions.h — частично для подключения прочего общего вроде типов, частично для проверки на ошибки. Дело в том, что Си традиционно не козявит (does not mangle) имена функций, и если в хедере sin(int), а в реализации sin(double) — будут трудноуловимые ошибки.

    Да, деление на единицы компиляции решает и другую задачу — декомпизицию программы на меньшие элементы, и есть противоречие одного с другим (особенно в языке Си++, где хедеры огромны)

    В хедере находится только то, что не производит кода. Если говорить про Си++, то…
    • inline-объекты (код производят вызовы объекта)
    • определения типов, функций и прочего; extern-определения переменных (код производят тела функций и окончательные определения переменных)
    • шаблоны, если те нужны более чем в одной единице компиляции (код производит специализация)
    Но полные специализации шаблонов производят код и находятся в cpp-файле!
    Ответ написан
    Комментировать
  • Заголовочные файлы в Си нужны только для интерфейса?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Для того, чтобы использовать в main.c функцию, определенную в math_functions.c, вам надо иметь ее объявление в main.c

    Вам надо сказать компилятору, что вот такая функция есть и у нее вот такие вот параметры.

    Можно просто в main.c написать то, что вы бы написали в math_functions.h. Но это быстро становится сложно, если у вас проект большой и функции используются в разных файлах. Надо будет эти объявления копировать в кучу мест. А если вам еще и поменять что-то надо потом, вы офигеете. Для этого и придумали заголовочные файлы - вы пишите объявление один раз и потом его везде используете.

    Вообще, сейчас не обязательно math_functions.h включать и в math_functions.c. Раньше надо было определять функцию даже если ее объявления нигде нет. В современных стандартах это не так. Но все равно хедеры включают в соответствующий файл, чтобы ловить ошибки. Если вы поменяете функцию в .c но не поменяете в хедере, компилятор заметит несоответствие объявления и определения и сообщит об ошибке.
    Ответ написан
    6 комментариев
  • Какое отличие между обработкой исключения и обработчики исключений?

    обработка исключения - это то что делает обработчик исключения.
    Ответ написан
    Комментировать