If the C application program is running on the same machine as the DB2 database server, I don't think you can go wrong with embedded SQL in an external C program. But I am not certain about which is faster (external C program or SP).
Many people do not like to run C or Java SP's as non-fenced (because it cause DB2 to crash), so if run fenced, I doubt there is any performance advantage that SP's have.
Stored procedures do have an advantage if the program is running remotely.
According to IBM, C SP's are the fastest, SQL is next, and Java is the slowest. This could change in future releases of DB2.