Никакие программы не пишутся под конкретную архитектуру (я говорю про нормальные прикладные программы, которые используют libc (который многоплатформенный) и другие библиотеки, которые тоже в конечном счёте используют libc). Другое дело, что многие проприетарные программы рапространяются в виде скомпиленного 32-битного кода.
А сам "алгоритм" трудно представить зависимым от архитектуры - разве что что-то вроде "int *i = malloc(4);" вместо "int *i = malloc(sizeof(int));". Но нормальные программисты так не делают

Можно ещё привести пример про выравнивание структур данных (padding/alignment), но, по-моему, этим может заниматься компилятор, а не программист (что, кстати, GCC с успехом и делает).