Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

"Циклы" на препроцессоре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Копировать код http://www.cyberforum.ru/cpp/thread899514.html
как из MS Word или блокнота скопировать и вставить в программу Тurbo C++ код. обычным способом не получается, то есть ctrl+c и ctrl+v или shift+ins??
C++ Десять возможностей C++11, которые должен использовать каждый C++ разработчик Обсуждаем статью: http://habrahabr.ru/post/182920/ Надо же этот раздел немного оживить :) Я, естественно, не участвую. ^_^ http://www.cyberforum.ru/cpp/thread899038.html
разница C++
Доброе время суток, я не давно начал изучать С++. Есть разница писать на eclipse и писать на visual studio 2010? Заранее спасибо, прошу не смейтесь, я новичок:)
C++ Лямбда не допускает auto
Всем привет! Имеем код: #include <iostream> #include <vector> #include <algorithm> #include <numeric> int main()
C++ Скомпилится ли код, написанный, с g++ 4.6.3 на компиляторе версии 4.7.1? http://www.cyberforum.ru/cpp/thread888772.html
Если я пишу код с 4.6.3, он может не скомпилиться на 4.7 ? Или там есть обратная поддержка? Отмечу, что опции компиляции будут g++ -std=c++11 -Wall -Werror -pedantic-errors Добавлено через 6...
C++ treeView Visual studio помогите с записью в файл ! есть такие классы и методы template<typename T,typename Tl> class Buss { public: T buss_number; // номер автобуса T path_number; // номер маршрута Tl... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18030 / 6262 / 427
Регистрация: 30.03.2009
Сообщений: 17,207
Записей в блоге: 27
19.06.2013, 11:53  [ТС]
Среди реального использования вспомнился такой случай. Деталей не помню, описываю примерно суть. Программировался эмулятор процессора. Речь шла о системном регистре. В 64-битном регистре кодировались 16 групп по 4 бита. Все группы были симметричны. Между битами было какое-то хитрое соответствие, что аппаратный сигнал взводит бит "A" только в том случае, если взведён бит "B" и погашен бит "C".

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
union Reg_t
{
  uint64_t whole_reg;
  struct
  {
    unisgned a0:1;
    unisgned b0:1;
    unisgned c0:1;
    unisgned d0:1;
 
    unisgned a1:1;
    unisgned b1:1;
    unisgned c1:1;
    unisgned d1:1;
 
    ...
 
    unisgned a15:1;
    unisgned b15:1;
    unisgned c15:1;
    unisgned d15:1;
 
  } fields;
};
 
...
 
Reg_t reg;
unsigned signal;
 
switch (signal)
{
  case 0:
    if (reg.fields.b0 && !reg.fields.c0)
      reg.fields.a0 = 1;
    break;
 
  case 1:
    if (reg.fields.b1 && !reg.fields.c1)
      reg.fields.a1 = 1;
    break;
 
  ...
 
  case 15:
    if (reg.fields.b15 && !reg.fields.c15)
      reg.fields.a15 = 1;
    break;
}
 
...
Здесь именно тот случай, когда вместо массива из 16 элементов, образ регистра желательно держать в структуре с 16-кратным повторением имён полей, потому что это наиболее точно соответствует устройству реального железа, которое эмулируется
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru