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

const float & - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наведите на мысль http://www.cyberforum.ru/cpp-beginners/thread1008648.html
Добрый день) Изучаю Borland C++ по А. Крейгу, надо ввести данную программу(приведена ниже), после компиляции выводит ошибки: Unit1.cpp(31): E2316 'VmArray::VmArray(unsigned int,const char *)' is...
C++ Ввести строку из нескольких слов и найти в ней заданное слово Ввести строку из нескольких слов и найти в ней заданное слово( введённое с клавиатуры) вывести сколько раз оно встечается в строке. Не получается организовать цикл для поиска этого слова в строке http://www.cyberforum.ru/cpp-beginners/thread1008625.html
максимальный элемент главной диагонали матрицы C++
Помогите, какой должен быть код чтобы программа высчитывала максимальный элемент главной диагонали матрицы Х(5 на 5)
Динамические массивы/ Найти из каждых столбцов мах элемент C++
Дано динамические массивы,строков и столбцов внедрять с помощью клавиатуры.Найти из каждых столбцов мах элемент.Я написал половину программы,помогите закончить. #include <iostream> #include <ctime>...
C++ Определить, является ли сумма цифр этого числа простым числом http://www.cyberforum.ru/cpp-beginners/thread1008561.html
Помогите решить задание в С++ Дано натуральное число. Определить, является ли сумма цифр этого числа простым числом
C++ Сравнение двух двумерных массивов Всем привет ) Только начинаю работать с С++. Помогите разобраться с задачей, нужно сравнить два двумерных массива, то есть если в массивах есть совпадающие элементы (местоположение неважно) их нужно... подробнее

Показать сообщение отдельно
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
16.11.2013, 11:54
Действительно, если вставить __attribute__ ((noinline)) перед названием функции, то по значению будет гораздо быстрее, чем по ссылке:
C++
#include <cstdio>
#include <ctime>
 
struct vec4 { float a[4]; };
 
// По ссылке
vec4 __attribute__ ((noinline)) ref(float &a, float &b, float &c, float &d) 
{ 
    vec4 v;
    v.a[0] = a;
    v.a[1] = b;
    v.a[2] = c;
    v.a[3] = d; 
    return v; 
}
// По значению
vec4 __attribute__ ((noinline)) val(float  a, float  b, float  c, float  d) 
{ 
    vec4 v;
    v.a[0] = a;
    v.a[1] = b;
    v.a[2] = c;
    v.a[3] = d; 
    return v; 
}
 
//vec4(*pref)(float &, float &, float &, float &) = ref;
//vec4(*pval)(float,   float,   float,   float  ) = val;
 
clock_t t;
long N = 100000000;
double sc = 1000000.0;
float x = 0.0;
float y = 0.0;
float z = 0.0;
float w = 0.0;
 
 
int main()
{
    vec4 vref;
    vec4 vval;
 
    for(int g = 0; g < 5; g++)
    {
        t = clock();
        for(int i = 0; i < N; i++) vref = ref(x, y, z, w);
        t = clock() - t;
        printf("ref: %2.2f\t", t/sc);
 
        t = clock();
        for(int i = 0; i < N; i++) vval = val(x, y, z, w);
        t = clock() - t;
        printf("val: %2.2f\n", t/sc);
    }
}


Добавлено через 42 секунды
Bash
user@linuxmint ~/Рабочий стол $ g++ test.cpp -otest -O3
user@linuxmint ~/Рабочий стол $ ./test
ref: 1.08   val: 0.38
ref: 1.10   val: 0.38
ref: 1.13   val: 0.38
ref: 1.10   val: 0.39
ref: 1.10   val: 0.38
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru