Since the first version of the standard (ANSI X3.159-1989 aka ANSI C or C89), this has been explicitly allowed.
See ยง 3.8
A preprocessing directive consists of a sequence of preprocessing tokens that begins with a # preprocessing token that is either the first character in the source file (optionally after white space containing no new-line characters) or that follows white space containing at least one new-line character, and is ended by the next new-line character.[82]
And footnote 82
Thus, preprocessing directives are commonly called "lines." These "lines" have no other syntactic significance, as all white space is equivalent except in certain situations during preprocessing (see the # character string literal creation operator in 3.8.3.2, for example).