Czy to jest rekurencja ogonowa?

0

Czy ten kod zostanie potraktowany przez kompilator jako rekurencja ogonowa i zamieniony na pętle? Jeśli nie to jak go można poprawić?

void reverse(int arr[], int size) {
	void swap(int *a, int *b) {
		const int temp=*a;
		*a=*b;
		*b=temp;
	}
	if(size>0) {
		swap(&arr[0], &arr[size-1]);
		reverse(++arr, size-2);
	}
	
} 
2

W sumie to powinien, ale optymalizacja to optymalizacja, coś niewymaganego przez standard (tak mi się zdaje przynajmniej), więc poważnie bym się zastanowił zanim bym coś takiego wstawił do kodu produkcyjnego do poważnego programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1