You write your program in C/C++ with special SQL constructs. When declaring variables to be used in SQL statements, you need to put them in a special declare section. You use a special syntax for the SQL queries.
Before compiling you run the file through the embedded SQL C preprocessor and it converts the SQL statements you used to function calls with the variables used as arguments. Both query input and result output variables are passed.
After compiling, you must link with a special library that contains needed functions. These functions fetch information from the arguments, perform the SQL query using the libpq interface, and put the result in the arguments specified for output.