Есть libpq, там есть объявление:
/* PGresult encapsulates the result of a query (or more precisely, of a single
* SQL command --- a query string given to PQsendQuery can contain multiple
* commands and thus return multiple PGresult objects).
* The contents of this struct are not supposed to be known to applications.
*/
typedef struct pg_result PGresult;
Как правильно нужно использовать PGresult в опережающем объявлении (чтобы не тянуть заголовок libpq в .h файл)
struct pg_result; // собственно само опережающее объявление
typedef struct pg_result PGresult; // воссоздание типа PGresult
Как я понимаю это будет правильный вариант опережающего объявления, но нет ли тут каких-либо подводных камней?
Нужно использовать также, как в libpq
Есть libpq, там есть объявление:
/* PGresult encapsulates the result of a query (or more precisely, of a single
* SQL command --- a query string given to PQsendQuery can contain multiple
* commands and thus return multiple PGresult objects).
* The contents of this struct are not supposed to be known to applications.
*/
typedef struct pg_result PGresult;
Опережающее объявление сократит время сборки, так как компилятор не будет разбирать большие заголовки, следовательно компиляция может ускорится очень сильно.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники