• Понимание lvalue и rvalue в C и С++

      Привет, Хабр! Представляю вашему вниманию перевод статьи Eli Bendersky, Understanding of lvalues and rvalues in C and C++.

      От переводчика: предлагаю Вашему вниманию перевод интересной статьи об lvalue и rvalue в языках C/C++. Тема не нова, но знать об этих понятиях никогда не поздно. Статья рассчитана на новичков, либо на программистов переходящих с C (или других языков) на C++. Поэтому будьте готовы к подробному разжёвыванию. Если вам интересно, добро пожаловать под кат
      Читать дальше →
    • Руководство новичка по эксплуатации компоновщика

      David Drysdale, Beginner's guide to linkers (http://www.lurklurk.org/linkers/linkers.html).

      Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).

      Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
      g++ -o test1 test1a.o test1b.o
      test1a.o(.text+0x18): In function `main':
      : undefined reference to `findmax(int, int)'
      collect2: ld returned 1 exit status
      

      Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
      Читать дальше →