• Несколько вопросов о С++?

    GavriKos
    @GavriKos
    1 ) В целом - да. Более подробно вам пока не нужно
    2) И то и другое. Компилируется под определенную архитектуру в исполняемый файл целевой ОС с использованием системных вызовов этой ОС
    3) Программе есть разница, если она использует хоть что то системное. Либо можно использовать универсальные "прослойки" а-ля Qt, которые в зависимости от параметров компиляции подставят нужные вызовы. Т.е. консольный хеллоу ворд можно написать так, что скомпилится и под линь и под винду. Что то сложное - нужно учитывать нюансы или даже делать разные реализации.
    4) Разница есть. На уровне написания программы - это размеры типов данных, особенности работы с памятью и все такое. На уровне выполнения - если программа скомпилирована не под тот проц - то она просто не заработает.
    Ответ написан
    5 комментариев
  • Несколько вопросов о С++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    1. Компиляция - перевод текста в исполняемый код. Современная компиляция процесс сложный, сейчас он включает в себя и непосредственно трансляцию и линковку в конечный исполняемый файл (.exe, .com, *nix executable, и др). Да исполняемый файл это практически машинный код процессора.

    2. Компиляция обычно идет под определенную платформу (грубо говоря процессор), но в Java, например, тоже есть JIT-компиляция под саму java-машину. Сейчас слишком много виртуализации, чтобы давать недвумысленные утверждения.

    3. Программе есть разница. У компилятора могут быть разные опции оптимизации. А OC лейер делается лично вами - например для отрисовки окошек, вы можете использовать виндовые библиотеки, и понятное дело что они будут работать только под виндой. Или использовать какой-нить фреймворк кроссплатформенный, и тогда будет под теми платформами которые поддерживает фреймворк. Или мутите графику с нуля, ищете как это реализуется под каждую платформу. То есть на С++ вы можете писать в зависимости от ваших знаний платформ.

    4. Разное железо предоставляет разные возможности, но вы должны уметь с ним работать. Если вы хотите использовать GPU (чипсет на видяшках) для майнинга, понятное дело что железо должно быть с таким GPU.
    Если вы пишете простенькую прогу с использованием стандартных библиотек, разницы нет.
    Ответ написан
    1 комментарий