This PR ensures that all public C headers in secp256k1 are strictly self-contained and independently compilable without requiring downstream projects to manually include missing dependencies (like <stddef.h> or <stdint.h>).
Changes included:
- GitHub Actions (
ci.yml): Added a dedicatedc_headers_debianjob that runsgccandclangin-std=c89and-pedantic-errorsmodes to precompile every public header, mirroring the existing C++ checks. Also updated the Windows MSVC job to test headers using-TC(C-mode). - Offline Tests (
test_public_headers.c): Created a dedicated C test file that explicitly#includes every public header conditionally based on enabled modules (e.g.,ENABLE_MODULE_ECDH). This test is fully integrated into bothCMakeLists.txtandMakefile.amso it will automatically be verified during localmake checkandctestruns.