Perguntas com a marcação «c»

C é uma linguagem de programação de uso geral usada para programação do sistema (SO e incorporado), bibliotecas, jogos e plataformas cruzadas. Essa tag deve ser usada com perguntas gerais sobre o idioma C, conforme definido na norma ISO 9899 (a versão mais recente, 9899: 2018, exceto quando especificado em contrário - também tag as solicitações específicas da versão com c89, c99, c11, etc.). C é diferente de C ++ e não deve ser combinado com a tag C ++, sem um motivo racional.

2
O que a constante 0.0039215689 representa?
Eu continuo vendo essa constante aparecer em vários arquivos de cabeçalho de gráficos 0.0039215689 Parece ter algo a ver com cor, talvez? Aqui está o primeiro hit no Google : void RDP_G_SETFOGCOLOR(void) { Gfx.FogColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f; Gfx.FogColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f; Gfx.FogColor.B = _SHIFTR(w1, …


11
Qual é a diferença entre NULL, '\ 0' e 0?
Em C, parece haver diferenças entre os vários valores de zero - NULL, NULe 0. Eu sei que o caractere ASCII é '0'avaliado como 48ou 0x30. O NULLponteiro é geralmente definido como: #define NULL 0 Ou #define NULL (void *)0 Além disso, há o NULpersonagem '\0'que parece avaliar 0também. Há …
309 c  pointers  null 

8
Por que rand () + rand () produz números negativos?
Observei que a rand()função de biblioteca, quando é chamada apenas uma vez dentro de um loop, quase sempre produz números positivos. for (i = 0; i < 100; i++) { printf("%d\n", rand()); } Mas quando adiciono duas rand()chamadas, os números gerados agora têm mais números negativos. for (i = 0; …
304 c  random 



5
Extraindo bits com uma única multiplicação
Vi uma técnica interessante usada em resposta a outra pergunta e gostaria de entender um pouco melhor. Recebemos um número inteiro de 64 bits não assinado e estamos interessados ​​nos seguintes bits: 1.......2.......3.......4.......5.......6.......7.......8....... Especificamente, gostaríamos de movê-los para as oito primeiras posições, assim: 12345678........................................................ Não nos importamos com o valor …

14
MIN e MAX em C
Onde estão MINe MAXdefinidos em C, se houver? Qual é a melhor maneira de implementá-las da maneira mais genérica e segura possível? (Preferências de extensões / built-in do compilador para compiladores convencionais).
301 c  max  min  c-preprocessor 

3
Por que NaN - NaN == 0.0 com o compilador Intel C ++?
É sabido que os NaNs se propagam em aritmética, mas não consegui encontrar nenhuma demonstração, então escrevi um pequeno teste: #include <limits> #include <cstdio> int main(int argc, char* argv[]) { float qNaN = std::numeric_limits<float>::quiet_NaN(); float neg = -qNaN; float sub1 = 6.0f - qNaN; float sub2 = qNaN - 6.0f; …
300 c++  c  floating-point  ieee-754  icc 


4
Tamanho do caractere ('a') em C / C ++
Qual é o tamanho do caractere em C e C ++? Tanto quanto eu sei, o tamanho do caractere é de 1 byte em C e C ++. Em C: #include <stdio.h> int main() { printf("Size of char : %d\n", sizeof(char)); return 0; } Em C ++: #include <iostream> int …
298 c++  c  types 

9
Ponteiros em C: quando usar o e comercial e o asterisco?
Estou apenas começando com ponteiros e estou um pouco confuso. Eu sei que &significa o endereço de uma variável e que *pode ser usado na frente de uma variável de ponteiro para obter o valor do objeto apontado pelo ponteiro. Mas as coisas funcionam de maneira diferente quando você está …
298 c  pointers 

6
Como imprimir um tipo int64_t em C
O padrão C99 possui tipos inteiros com tamanho de bytes como int64_t. Estou usando o seguinte código: #include <stdio.h> #include <stdint.h> int64_t my_int = 999999999999999999; printf("This is my_int: %I64d\n", my_int); e recebo este aviso do compilador: warning: format ‘%I64d’ expects type ‘int’, but argument 2 has type ‘int64_t’ Eu tentei …
298 c  stdint 

26
Meça facilmente o tempo decorrido
Estou tentando usar time () para medir vários pontos do meu programa. O que não entendo é por que os valores no antes e depois são os mesmos? Entendo que essa não é a melhor maneira de criar um perfil do meu programa, só quero ver quanto tempo leva para …
297 c++  c  linux  time  measurement 

3
O que é o operador >>> = em C?
Dado por um colega como um quebra-cabeça, não consigo descobrir como esse programa C realmente compila e executa. O que é esse >>>=operador e o 1P1literal estranho ? Eu testei em Clang e GCC. Não há avisos e a saída é "???" #include <stdio.h> int main() { int a[2]={ 10, …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.