unsigned shortpromote to
externobjects have file scope.
If the name of a macro being replaced is found during the rescan of the replacement list, it is macro replaced.
#character occurs in the first column of a line. Any preprocessor directives preceded by white space are ignored.
#ifdefis treated as "
#ifndefis treated as "
##operators when a valid token results after concatenation, except that adjoining white space is not deleted. If the resulting token is not valid, the comment in a macro replacement is deleted.