Уроки С++ / Урок

Поделиться
HTML-код
  • Опубликовано: 2 янв 2024
  • 1. Куда растет стек ?
    2. Как виртуальная память соотносится с физической?
    3. Какая структура виртуальной памяти?
    4. Чем занята операционная система на самом деле?
    #C++ #virtualmemory #ОС #RAM #ОЗУ #stack
    #урокиснуля #счегоначатьпрограммирование
    #лаконично
    #qt
    #vovasharade #вовашараде

Комментарии • 6

  • @TheRenroynd
    @TheRenroynd 5 месяцев назад +2

    Большое спасибо за уроки!

  • @user-lg6xk2fo5o
    @user-lg6xk2fo5o 3 месяца назад +1

    зачем нужен вызов функции? почему нельзя объявить две переменные внутри main?

    • @vovasharade
      @vovasharade  3 месяца назад

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

  • @console.g
    @console.g 5 месяцев назад +1

    Зачем вообще нужно тренарный оператор? Как то оптимизирует или укарачвает код? Почему не if оператор?

    • @vovasharade
      @vovasharade  5 месяцев назад

      Да, это несет двоякий эффект. Он и количество инструкций сокращает и более компактный. Его недостаток - он не так хорошо читаем. Дело привычки...

    • @vovasharade
      @vovasharade  5 месяцев назад

      Уточняю, на ассемблере (язык процессора, более низкоуровневый чем С++) if/else выглядит также, как и тернарный оператор.
      if (num == 6)
      {
      return num * num;
      }
      else
      return num;
      или
      return num == 6 ? num*num : num;
      Примерно так выглядит на ассемблере =)
      cmp DWORD PTR [rbp-4], 6
      jne .L2
      mov eax, DWORD PTR [rbp-4]
      imul eax, eax
      jmp .L4
      .L2:
      mov eax, DWORD PTR [rbp-4]
      .L4:
      pop rbp
      ret