3. Bandeiras de Aviso do Compilador

O GCC compila programas usando o dialeto GNU da linguagem C como base, que incorpora o padrão ANSI C e várias extensões do GNU C. Essas extensões incluem recursos como declarações de variáveis no meio de um bloco de código, expressões com efeitos colaterais e construtores de atributos, entre outros. No entanto, programas válidos escritos em ANSI C podem conflitar com algumas extensões do GNU C.

Para lidar com esses conflitos, o GCC oferece várias opções de linha de comando, conhecidas como bandeiras ou flags, que permitem aos desenvolvedores controlar o comportamento do compilador ao compilar o código fonte. A flag -ansi é usada para desabilitar as extensões do GNU C que conflitam com o padrão ANSI C. A flag -pedantic desabilita todas as extensões do GNU C, não apenas aquelas que conflitam com o padrão ANSI.

No capítulo anterior, usamos a flag -Wall na compilação do nosso programa. Essa flag é uma combinação de várias flags de aviso especializadas que detectam erros comuns de programação. Cada uma das flags contidas em -Wall pode ser usada individualmente. Algumas dessas flags são:

O GCC também inclui outras flags de aviso úteis, como:

Se você quiser que o programa pare de compilar se houver qualquer aviso das flags que você aplicou, use a flag "-Werror". Usar flags ao compilar um programa é uma boa prática, mas a grande quantidade pode tornar a escolha de quais usar difícil. Com isso em mente, recomendamos que, em geral, as seguintes flags sejam usadas:

Bash

$ gcc -ansi -pedantic -Wall -W programa.c -o programa