Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросник новичка 
:(
    Опции темы
MAKCim
Дата 14.10.2007, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(archimed7592 @  14.10.2007,  10:08 Найти цитируемый пост)
И напоследок: ты не задумывался, почему этот порядок не стандартизирован smile

просвети  smile 
на самом деле не задумывался

Добавлено через 2 минуты и 2 секунды
Цитата(archimed7592 @  14.10.2007,  10:08 Найти цитируемый пост)
Нет, на самом деле, мы же не стандартизируем ничего - есть Стандарт, мы и компилятор ему пытаемся следовать(для того он и нужен - чтобы все были максимально довольны).

я не понимаю, почему стандарт не может обязать производить вычисления в определенном порядке  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 14.10.2007, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(MAKCim @  14.10.2007,  10:10 Найти цитируемый пост)
просвети
на самом деле не задумывался

Ты вот так любишь асм, а за что? За скорость smile?
Вот и здесь тоже: оптимизатору даётся свобода действий.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 14.10.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(archimed7592 @  14.10.2007,  10:22 Найти цитируемый пост)
Вот и здесь тоже: оптимизатору даётся свобода действий. 

аргумент
тут и не поспоришь  smile 
хотя тут можно включить следующую логику в действия оптимизатора:
1) если какая либо переменная изменяется в правой части выражения 2 и более раз => использовать стандартизованный порядок вычисления для нее, иначе - порядок определяется реализацией
2) переменная изменяется в правой части выражения <=> к ней применяются следующие операторы
а) префиксные и постфиксные ++, --
б) +=, -=, *=, /=, >>=, <<=, %=, &=, |=, ^=

Это сообщение отредактировал(а) MAKCim - 14.10.2007, 11:02


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
archimed7592
Дата 14.10.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Макс, жжошь smile.

Код

// module1.cpp

int foo(int &i, int &j)
{
    return (i++) + (j++);
}

// module2.cpp
int foo(int &i, int &j);
void bar()
{
    int i = 2;
    int j = foo(i, i);
}


И какой же порядок использовать? Или может быть Стандарту запретить раздельную компиляцию ;)? Или может обязать компоновщик отслеживать такие связи?

Добавлено через 1 минуту и 54 секунды
Кстати, понятий оптимизатора и его логики в Стандарте нет как таковых smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
MAKCim
Дата 14.10.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



archimed7592
усилим алгоритм
для ссылок и указателей применяем стандартизованный порядок
Цитата(archimed7592 @  14.10.2007,  10:40 Найти цитируемый пост)
Кстати, понятий оптимизатора и его логики в Стандарте нет как таковых 

мы говорим о порядке вычисления выражения
компилятор должен руководствоваться этим порядком в том числе и для оптимизации
тем самым нам и не надо вводить понятие оптимизатора и его логику в стандарт
в стандарте - порядок вычисления, и все


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Rickert
Дата 14.10.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 0
Всего: 52



archimed7592, там указано два варианта.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
archimed7592
Дата 14.10.2007, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Rickert @  14.10.2007,  16:27 Найти цитируемый пост)
archimed7592, там указано два варианта. 

Я когда-нибудь утверждал что вариант только один? Скорее ты говорил про один вариант, а я лишь толковал о том, что конкретно в main return не обязателен smile.


MAKCim, это был всего-лишь один маленький пример сразу промелькнувший в голове, а если подумать, думаю таких косяков можно много нарыть smile. Те же указатели(аналогичный пример). Не стоит оно того, короче говоря.
В конце концов: j = ++i + i; - здесь переменная меняется только один раз, но, тем не менее, результат не определён smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Sketch
Дата 15.10.2007, 03:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 15.10.2007

Репутация: нет
Всего: нет



Совсем уж к чайниким по Си себя не отношу ,не подобная задача завела меня в тупик, надеюсь, кто-нибудь растолкует что к чему smile
Существует ли функция( или алгоритм), в Си( Си++), позволяющая воспринимать строку, введимую с клавиатуры как часть кода программы.
Например, ввод двух любых (по желанию пользователя) математических функций, по которым в дальнейшем ведётся рассчет.  
PM MAIL   Вверх
DjoNIK
Дата 15.10.2007, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 4
Всего: 5



Цитата

Существует ли функция( или алгоритм), в Си( Си++), позволяющая воспринимать строку, введимую с клавиатуры как часть кода программы.

по идее - нет! Ведь данные и код - две вещи, которые разделены в памяти.


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
archimed7592
Дата 15.10.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Sketch, нет, не существует. Только если извращаться и компилировать её на лету.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
zkv
Дата 15.10.2007, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



а питон может помочь в этом деле? 
сам не знаю о нем ничего, поэтому это именно вопрос, а не совет.

Цитата(archimed7592 @  15.10.2007,  08:18 Найти цитируемый пост)
и компилировать её на лету. 

 smile 
PM MAIL   Вверх
archimed7592
Дата 15.10.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(zkv @  15.10.2007,  09:06 Найти цитируемый пост)
а питон может помочь в этом деле? 

Только если Boost.Python smileСам о нём ничего не знаю.


Цитата(zkv @  15.10.2007,  09:06 Найти цитируемый пост)
Цитата(archimed7592 @  15.10.2007,  08:18 Найти цитируемый пост)
и компилировать её на лету. 

smile

AFAICS, имея компилятор нет ничего сложного делать dll'ки на лету. IIRC, у нас один проект именно так и "подгружал" пользовательские ф-ции smile.



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
tdebugger
Дата 6.11.2007, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.1.2007

Репутация: нет
Всего: 4



//Здравствуйте, господа.
//Очередной глупый вопрос от новичка:
//фрагмент кода на С, какие в нем присутствуют ошибки? 

int d;
int d;
struct A

    int a;
}
f(c,b)
char b;
{    
    struct A a;
    a.a=10;
    c=a.a;
    return a;
}
--------------------
ТЕХНОЛОГИЯ "JAVA"  НЕ ПРЕДНАЗНАЧЕНА ДЛЯ УПРАВЛЕНИЯ ЯДЕРНЫМИ УСТАНОВКАМИWindows98 License.txt
PM MAIL MSN   Вверх
archimed7592
Дата 6.11.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(tdebugger @  6.11.2007,  20:08 Найти цитируемый пост)
int d;
int d;

Ну, хоть и gcc не воспринимает это как ошибку(не знаю должен ли), но это немного странно - делать две переменные с одним именем.


Цитата(tdebugger @  6.11.2007,  20:08 Найти цитируемый пост)
какие в нем присутствуют ошибки? 

Синтаксических - никаких. Но ф-ция делает какие-то странные действия.

зы. Используй тег code, пожалуйста.

Это сообщение отредактировал(а) archimed7592 - 6.11.2007, 22:19


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
tdebugger
Дата 6.11.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.1.2007

Репутация: нет
Всего: 4



Пожалуйста
Код

int d;
int d;
struct A

    int a;
}
f(c,b)
char b;
{    
    struct A a;
    a.a=10;
    c=a.a;
    return a;
}

--------------------
ТЕХНОЛОГИЯ "JAVA"  НЕ ПРЕДНАЗНАЧЕНА ДЛЯ УПРАВЛЕНИЯ ЯДЕРНЫМИ УСТАНОВКАМИWindows98 License.txt
PM MAIL MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0980 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.