C'est un enjeu réel pour ce langage de bas niveau, qui peut s'avérer parfois complexe lorsqu'il s'agit de faire la chasse aux failles.
C'est d'ailleurs ce qui pousse même certains géants comme Microsoft à se pencher sur des initiatives plus modernes pour sa programmation système, comme Rust.
Pour l'Agence, « C offre une grande liberté aux développeurs. Cependant, il comporte des constructions ambiguës ou risquées qui favorisent l'introduction d'erreurs lors du développement ».
Il faut alors « définir des restrictions quant à l'utilisation du langage C afin d'identifier les différentes constructions risquées ou non portables et d'en limiter voire interdire l'utilisation », des pratiques que vient détailler son guide.