These happen before all other processing. Conceptually, they happen in a rigid order, and the entire file is run through each transformation before the next one begins. GNU CPP actually does them all at once, for performance reasons. The input file is read into memory and broken into lines. We plan to add complete support for international character sets in a future release.
Different systems use different conventions to indicate the end of a line.
You may therefore safely copy source code written on any of those systems to a different one and use it without conversion. The C standard says that this condition provokes undefined behavior, so GCC will emit a warning message. If trigraphs are enabled, they are replaced by their corresponding single characters. Trigraphs are not popular and many compilers implement them incorrectly. Portable code should not rely on trigraphs being either converted or ignored.