W amxx co prawda nie ma wskaźników takich jak w C++, ale są funkcje którymi można naśladować ich zachowanie:
get_var_addr(); get_addr_val(); set_addr_val();
Czy używanie tych funkcji w celu odwoływania się do zmiennych będzie szybsze niż ich normalny odczyt/zapis ?
Czy taki kod:
new Data[10000];
new pData = get_var_addr(Data);
for(new i = 0; i < 10000; i++, pData += 4) {
    set_addr_val(pData, i);
    log_amx("%i", get_addr_val(pData));
}
wykona się szybciej o takiego ?
new Data[10000];
for(new i = 0; i < 10000; i++) {
    Data[i] = i;
    log_amx("%i", Data[i]);
}
Teoretycznie skoro podaje adres zmiennej i potem go tylko zwiększam, to cała operacja powinna być szybsza niż gdyby serwer musiał sam szukać tych adresów. Ale get_var_addr() nie zwraca rzeczywistej pozycji zmiennej w pamięci serwera a jedynie jej lokalny adres, inny dla każdego pluginu. Do tego kompilator może stosować jakieś optymalizacje o których sam nie wiem. Więc właściwie czy wykorzystywanie tych trzech funkcji może w ogóle jakoś przyspieszyć wykonywanie kodu ?


 
Dodatki SourceMod



	










