С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вывод в cout - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помощь по задаче(структура, двойная сортировка) http://www.cyberforum.ru/cpp-beginners/thread815938.html
В общем, парни, совсем запутался и запарился) нужна помощь по этой задаче: 11. Сформировать массив структур, каждый элемент которого содержит следующие поля: • шифр подразделения, содержащий не...
C++ Много раз ввожу данные Есть такой кусок кода: void input_arr(int* arr,int size) { system("cls"); cout<<"Введiть число у двiйковiй системi числення:"<<endl; int tmp; int j = 0; for(int i = 0;i < size ; i++){... http://www.cyberforum.ru/cpp-beginners/thread815934.html
из с++ builder в с++ C++
Здравствуйте. У меня написан класс и программа в С++ builder, нужно переписать в С++ (по стандарту С++). Если переписать класс, то саму программу тоже нужно будет переписать? Помогите. Кто готов...
Пояснить конструктор C++
Вот такая вешчь в конструкторе, а что она означает и как работает? TClass::TClass(float x) { TClass::x=x; }
C++ Массив: сформировать массивы T и S соответственно из элементов матриц W и Z, больших заданного числа Р и M. http://www.cyberforum.ru/cpp-beginners/thread815899.html
Задать значения целочисленным элементам матриц W = {wij} и Z = {zij}, где i = 0, 1, 2; j = 0, 1, 2,…, 7 и сформировать массивы T и S соответственно из элементов матриц W и Z, больших заданного...
C++ Составить программу расчета значений полинома Составить программу расчета значений полинома P(x)=a0+a1x+a2x^2+...+anx^n где n – порядок полинома, коэффициенты ai и значение x задаются вводом с клавиатуры. подробнее

Показать сообщение отдельно
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,388
Записей в блоге: 2
Завершенные тесты: 1
23.03.2013, 00:02
Цитата Сообщение от Байт Посмотреть сообщение
что засовывание параметров в стек справа налево
Не, тут дело не в этом. Дело в том, что нельзя с уверенностью сказать какой параметр функции будет вычислен первым.
Например
C++
1
2
3
4
5
6
int i = 0;
int f1() {return i++;}
int f2() {return i++;}
int func(int a, int b) {}
 
func (f1(), f2()); // вызов
здесь нельзя утвержать, что f1() вызовется раньше f2(), поэтому аргументы func могут отличаться в зависимости от компилятора.

Тут тоже самое, вот этот код
C++
1
cout << a.qget() << ' ' << a.qget() << endl;
на самом деле выглядет так
C++
1
operator << (operator << (operator << (operator << (cout, a.qget()), ' '), a.qget()), endl);// надеюсь со скобками не напутал)
и здесь мы можем быть уверены только в порядке вызова операторов и в том, что к моменту из вызова аргументы будут вычислены. Но в каком порядке будут вычислятся аргументы мы сказать не можем, т.е. какой из qget() когда будет вызван - хз.

clang компилирует из этого код с ожидаемым поведением.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.