O que é o formato de ficheiro CPP?
Arquivos .cpp contêm código-fonte escrito em C++, uma linguagem de programação de uso geral criada por Bjarne Stroustrup nos Bell Labs no início da década de 1980. A extensão .cpp significa «C plus plus» - convenções alternativas como .cc e .cxx denotam o mesmo tipo de arquivo de origem sob diferentes tradições de ferramentas.
Conteúdo dos arquivos .cpp
Arquivos com a extensão .cpp podem conter elementos como:
- declarações de variáveis e tipos,
- declarações e definições de funções,
- declarações de classes e implementações de funções-membro,
- diretivas de pré-processador (ex:
#include <iostream>,#define), - referências a bibliotecas do sistema e arquivos de cabeçalho
.hou.hpp, - comentários para melhor legibilidade do código - estes são omitidos durante a compilação.
Um arquivo .cpp é um programa?
Arquivos .cpp contêm código-fonte de programa escrito em C++, mas para executar tais aplicações o código-fonte deve ser compilado. Um compilador - como g++, clang++ ou MSVC - pega o código-fonte e o traduz em código de máquina que o computador pode executar diretamente. Apenas a saída compilada pode ser chamada de programa; o arquivo .cpp em si é apenas texto. Um projeto normalmente compila múltiplos arquivos .cpp e os vincula para produzir um executável final.
Posso abrir um arquivo .cpp?
Arquivos .cpp nada mais são do que arquivos de texto simples e podem ser editados usando qualquer editor de texto. No entanto, editá-los requer conhecimento da sintaxe C++ para evitar erros que possam impedir a compilação ou fazer com que o programa funcione incorretamente. Por este motivo, a edição de arquivos .cpp é melhor realizada usando ferramentas dedicadas que oferecem recursos úteis como:
- numeração automática de linhas,
- realce de sintaxe (syntax highlighting),
- preenchimento de código e dicas,
- notificações de erros de sintaxe (parênteses de fechamento ausentes, pontos e vírgulas, etc.),
- suporte integrado para build e depurador.
Ambientes populares incluem Microsoft Visual Studio, VS Code e Apple Xcode. O arquivo .cpp em si não carrega informações de versão incorporadas - o padrão C++ de destino (de C++98 a C++23) é escolhido no momento da compilação via sinalizadores (flags) do compilador.
Segurança e proteção
RISCO: LOWUm arquivo .cpp é texto simples e não pode ser executado por conta própria, portanto, abrir um em um editor é seguro. O risco surge apenas quando você COMPILA e EXECUTA código C++ desconhecido: a origem de uma fonte não confiável pode fazer qualquer coisa que um programa pode fazer uma vez construído (excluir arquivos, acesso à rede, instalar malware), e o acesso de baixo nível do C++ torna o código malicioso ou com bugs fácil de esconder. Leia o código antes de compilá-lo, construa código não confiável em uma sandbox/VM e nunca execute um binário compilado em que você não confia. A extensão do arquivo em si não carrega exploits - o perigo está no que o código faz após a compilação.
Detalhes do formato
em resumo- Código-fonte C++ (extensões alternativas) - A mesma função de origem C++ também é desempenhada por .cc, .cxx, .c++ e .C (maiúsculo); .cpp é a convenção dominante para Windows/multiplataforma.
Programas que abrem arquivos CPP
Detalhes técnicos
especificação profunda| Tipo MIME | text/x-c++src (também aceito: text/x-c++ e text/plain) |
| Codificação de arquivo | Texto simples - ASCII ou UTF-8; um BOM UTF-8 (EF BB BF) no deslocamento 0 é aceito, mas não obrigatório |
| Assinatura do arquivo / magic bytes | Nenhuma - identificado pelo conteúdo: normalmente começa com comentários // ou /* */, diretivas #include ou definições de classe/função |
| Estrutura do arquivo | Diretivas de pré-processador (#include, #define, #if), declarações using/namespace, definições de classe e função, e o ponto de entrada main() |
| Compilação necessária | Sim - deve ser compilado por g++, clang++ ou MSVC; o arquivo .cpp é texto de origem legível por humanos, não um executável |
| Padrões de linguagem de destino | C++98, C++03, C++11, C++14, C++17, C++20, C++23; o padrão é selecionado via sinalizador do compilador (ex: -std=c++17) e não é armazenado dentro do arquivo |
| Estágio de pré-processamento | Antes da compilação, o pré-processador C expande diretivas #include, macros #define e blocos de compilação condicional (#if / #endif) |
| Tipos de arquivos complementares | .h e .hpp (declarações de cabeçalho), .cc e .cxx (extensões alternativas de origem C++), .o / .obj (saída de arquivo objeto compilado) |
| Saída da compilação | Um arquivo objeto (.o no Linux/macOS, .obj no Windows) que o vinculador (linker) combina com outros objetos em um executável ou biblioteca compartilhada |
| Tamanho típico do arquivo | De alguns KB a dezenas de KB por arquivo de origem; arquivos gerados por máquina ou com uso intenso de templates podem exceder 1 MB |
| Suporte a Unicode / caracteres | Literais de string e identificadores suportam Unicode (UTF-8) a partir de C++11; prefixos de literal de string u8, u e U permitem controle explícito de codificação |
| Finais de linha | Independente de plataforma - LF (Unix/macOS), CRLF (Windows) e CR são todos aceitos pelos principais compiladores |
| Sistemas operacionais associados | Windows, macOS, Linux - e qualquer plataforma com um conjunto de ferramentas de compilador C++ compatível |
| Órgão de padronização | ISO/IEC JTC1/SC22/WG21 (o Comitê de Padrões C++); os padrões são publicados como revisões ISO/IEC 14882 em um ciclo de aproximadamente 3 anos |
| Convenção de nomenclatura de arquivo | Normalmente corresponde à classe ou módulo que implementa - ex: MyClass.cpp pareado com MyClass.h ou MyClass.hpp |
| Significado do nome da extensão | As letras «pp» significam «plus plus»; o mesmo conteúdo de origem C++ pode alternativamente usar .cc ou .cxx por convenção de ferramentas |
| Lançado | C++ language created 1979-1985 (Bjarne Stroustrup, Bell Labs); first ISO standard C++98 (1998) |
| Versão mais recente | ISO/IEC 14882:2024 (C++23); C++26 in progress |
| Padrão aberto | Sim · livre de royalties |
| Especificação | isocpp.org |
Conversões de CPP
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos CPP.