Добрый день.
Возник вот такой вопрос. В примерах для GTK очень часто используется следующая конструкция:
g_list_foreach(list, gtk_tree_path_free, NULL);
Интересует, собственно, вот что: функция gtk_tree_path_free принимает всего один аргумент, но g_list_foreach передает ей два (GtkTreePath и NULL). Я очень далек от ассемблера, но мне кажется, что я где-то слышал, что (как минимум) на Intel совместимых архитектурах переменные для функции в стек складывает вызывающая функция и после выполнения вызываемой функции она же их от туда извлекает. В таком случае все должно работать нормально, но вот как обстоят дела на других архитектурах? Насколько "правильно" подобное использование g_list_foreach?