LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Если трудно - есть вон питон например :) Ну ладно, пусть будет раст))

Отличная клоунада! Но нет. Вот тебе три примера достаточно банальной функции:

void tmp_swap(int *a, int *b) {
  int tmp = *a;
  *a = *b;
  *b = tmp;
}

void xor_swap(int *a, int *b) {
  *a ^= *b;
  *b ^= *a;
  *a ^= *b;
}

void minus_swap(int *a, int *b) {
  *a = *a + *b;
  *b = *a - *b;
  *a = *a - *b;
}

Внимание вопрос: какой из них быстрее и почему это вариант с временной переменной? Есличо, в выхлопе в асме временной переменной скорее всего не будет.

Исправление hateyoufeel, :

Если трудно - есть вон питон например :) Ну ладно, пусть будет раст))

Отличная клоунада! Но нет. Вот тебе три примера достаточно банальной функции:

void tmp_swap(int *a, int *b) {
  int tmp = *a;
  *a = *b;
  *b = tmp;
}

void xor_swap(int *a, int *b) {
  *a ^= *b;
  *b ^= *a;
  *a ^= *b;
}

void minus_swap(int *a, int *b) {
  *a = *a + *b;
  *b = *a - *b;
  *a = *a - *b;
}

Внимание вопрос: какой из них быстрее и почему это вариант с временной переменной? Есличо, в выхлопе в асме временно переменной скорее всего не будет.

Исправление hateyoufeel, :

Если трудно - есть вон питон например :) Ну ладно, пусть будет раст))

Отличная клоунада! Но нет. Вот тебе три примера достаточно банальной функций:

void tmp_swap(int *a, int *b) {
  int tmp = *a;
  *a = *b;
  *b = tmp;
}

void xor_swap(int *a, int *b) {
  *a ^= *b;
  *b ^= *a;
  *a ^= *b;
}

void minus_swap(int *a, int *b) {
  *a = *a + *b;
  *b = *a - *b;
  *a = *a - *b;
}

Внимание вопрос: какой из них быстрее и почему это вариант с временной переменной?

Исправление hateyoufeel, :

Если трудно - есть вон питон например :) Ну ладно, пусть будет раст))

Отличная клоунада! Но нет. Вот тебе три примера достаточно банальной функций:

void tmp_swap(int *a, int *b) {
  int tmp = a;
  a = b;
  b = tmp;
}

void xor_swap(int *a, int *b) {
  *a ^= *b;
  *b ^= *a;
  *a ^= *b;
}

void minus_swap(int *a, int *b) {
  *a = *a + *b;
  *b = *a - *b;
  *a = *a - *b;
}

Внимание вопрос: какой из них быстрее и почему это вариант с временной переменной?

Исходная версия hateyoufeel, :

Если трудно - есть вон питон например :) Ну ладно, пусть будет раст))

Отличная клоунада! Но нет. Вот тебе три примера достаточно банальной функций:

void tmp_swap(int *a, int *b) {
  int tmp = a;
  a = b;
  b = tmp;
}

void xor_swap(int *a, int *b) {
  *a ^= *b;
  *b ^= *a;
  *a ^= *b;
}

void minus_swap(int *a, int *b) {
  *a = *a + *b;
  *b = *a - *b;
  *a = *a - *b;
}

Внимание вопрос: какой из них быстрее и почему это вариант с временной переменной?