 Subroutines can be incorporated into a reusable software library and shared between multiple programming projects.Design patterns in object-oriented programming, and functional programming, are both techniques that can allow programmers to avoid or reduce the practice of repeatedly inserting snippets into different pieces of code with slight variations each time.In languages in the C family, preprocessors are sometimes used for this purpose.