C has nothing that it calls "instructions". A C source file is made up of C language declarations (which may contains statements) and "preprocessor directives".
Source lines that begin with a # character that is not part of a multiple-line comment are preprocessor directives. The preprocessor chooses which lines to compile, allows lines to be included from another source file, and filters C language lines for macro replacements. Since "directive" is a synonym for "command", I suppose you could think of these directives as commands, but none of the official documentation uses that term.
The C program is what's left after the preprocessor is done. It consists of declarations, some of which are also definitions. C declarations declare types, objects (aka "variables") and functions.
A C statement specifies some action to be performed, and only occurs in the body of a function definition. Period. There's a casual misunderstanding, mostly from terminology used with other languages I think, that a statement is "anything ending with a semicolon". That's not how the C standard defines the language, but you will see "declaration statements" being used, even though that's a contradiction. (...including by me.)
I'm not a sticky-formalist, so any language that gets the point across works for me. I do believe, though, that you should understand what the words mean before you start misusing them. :^)