У меня есть функция, которая сравнивает 2 строки char на char. Мне нужно, чтобы он работал намного быстрее, чем в Ruby, поэтому я использовал RubyInline, чтобы переписать функцию в C. Это действительно увеличило скорость примерно в 100 раз. Функция выглядит так:
require 'inline'
inline do |builder|
builder.c "
static int distance(char *s, char *t){
...
}"
end
Однако мне нужно сравнить строки Unicode. Поэтому я решил использовать unpack ("U *") и сравнивать массивы целых чисел. Я не могу понять из скудной документации для RubyInline, как передать массивы ruby в функцию и как преобразовать их в массивы C. Любая помощь приветствуется!