Tipos de Dados Complexos
Números complexos podem incluir uma parte real e uma parte imaginária. As constantes numéricas abordadas anteriormente possuem valores reais. Uma constante com valor imaginário é uma constante numérica real comum seguida de ‘i’.
Para declarar variáveis numéricas como complexas, use a palavra-chave _Complex
. Os tipos de dados complexos padrão em C são de ponto flutuante:
No entanto, o GNU C também oferece suporte a tipos inteiros complexos.
Como _Complex
é uma palavra-chave assim como float
, double
e long
, essas palavras-chave podem aparecer em qualquer ordem, mas a ordem mostrada acima parece ser a mais lógica.
O GNU C suporta constantes para valores complexos. Por exemplo, 4.0 + 3.0i
tem o valor 4 + 3i
com o tipo _Complex double
. Veja Constantes Imaginárias.
Para extrair as partes real e imaginária de um número complexo, o GNU C fornece as palavras-chave __real__
e __imag__
:
O padrão C não inclui essas palavras-chave e, em vez disso, depende de funções definidas em complex.h
para acessar as partes real e imaginária de um número complexo: crealf
, creal
e creall
extraem a parte real de um número complexo de tipo float
, double
ou long double
, respectivamente; cimagf
, cimag
e cimagl
extraem a parte imaginária.
O GNU C também define ‘~’ como um operador para a conjugação complexa, o que significa negar a parte imaginária de um número complexo:
Para compatibilidade com o padrão C, você pode usar a função de biblioteca apropriada: conjf
, conj
ou conjl
.
Nota de compatibilidade:
Para compatibilidade com versões mais antigas do GNU C, a palavra-chave __complex__
também é aceita. No entanto, para usar um recurso mais novo, use a nova palavra-chave _Complex
, conforme definido na ISO C11.
Atualizado