Preguntas etiquetadas con c

C es un lenguaje de programación de uso general utilizado para la programación del sistema (SO e incrustado), bibliotecas, juegos y multiplataforma. Esta etiqueta debe usarse con preguntas generales sobre el lenguaje C, como se define en el estándar ISO 9899 (la última versión, 9899: 2018, a menos que se especifique lo contrario; también etiquete las solicitudes específicas de la versión con c89, c99, c11, etc.). C es distinto de C ++ y no debe combinarse con la etiqueta C ++ en ausencia de una razón racional.

2
¿Qué representa la constante 0.0039215689?
Sigo viendo esta ventana emergente constante en varios archivos de encabezado de gráficos 0.0039215689 Parece que tiene algo que ver con el color, tal vez? Aquí está el primer éxito en Google : void RDP_G_SETFOGCOLOR(void) { Gfx.FogColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f; Gfx.FogColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f; …


11
¿Cuál es la diferencia entre NULL, '\ 0' y 0?
En C, parece haber diferencias entre varios valores de cero NULL, NULy 0. Sé que el carácter ASCII se '0'evalúa como 48o 0x30. El NULLpuntero generalmente se define como: #define NULL 0 O #define NULL (void *)0 Además, está el NULpersonaje '\0'que parece evaluar 0también. ¿Hay momentos en que estos …
309 c  pointers  null 

8
¿Por qué rand () + rand () produce números negativos?
Observé que la rand()función de biblioteca cuando se llama solo una vez dentro de un ciclo, casi siempre produce números positivos. for (i = 0; i < 100; i++) { printf("%d\n", rand()); } Pero cuando agrego dos rand()llamadas, los números generados ahora tienen más números negativos. for (i = 0; …
304 c  random 



5
Extraer bits con una sola multiplicación
Vi una técnica interesante utilizada en una respuesta a otra pregunta , y me gustaría entenderla un poco mejor. Se nos da un entero de 64 bits sin signo, y estamos interesados ​​en los siguientes bits: 1.......2.......3.......4.......5.......6.......7.......8....... Específicamente, nos gustaría moverlos a las ocho primeras posiciones, así: 12345678........................................................ No nos …

14
MIN y MAX en C
¿Dónde están MINy se MAXdefinen en C, en todo caso? ¿Cuál es la mejor manera de implementarlos de la forma más genérica posible? (Se prefieren las extensiones / compiladores del compilador para compiladores convencionales).
301 c  max  min  c-preprocessor 

3
¿Por qué NaN - NaN == 0.0 con el compilador Intel C ++?
Es bien sabido que los NaN se propagan en aritmética, pero no pude encontrar ninguna demostración, así que escribí una pequeña prueba: #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 …
300 c++  c  floating-point  ieee-754  icc 


4
Tamaño del carácter ('a') en C / C ++
¿Cuál es el tamaño de los caracteres en C y C ++? Hasta donde sé, el tamaño de char es de 1 byte en C y C ++. C ª: #include <stdio.h> int main() { printf("Size of char : %d\n", sizeof(char)); return 0; } En C ++: #include <iostream> int …
298 c++  c  types 

9
Punteros en C: ¿cuándo usar el ampersand y el asterisco?
Estoy empezando con punteros y estoy un poco confundido. Sé que &significa la dirección de una variable y que *se puede usar frente a una variable de puntero para obtener el valor del objeto al que apunta el puntero. Pero las cosas funcionan de manera diferente cuando trabaja con matrices, …
298 c  pointers 

6
Cómo imprimir un tipo int64_t en C
El estándar C99 tiene tipos enteros con un tamaño de bytes como int64_t. Estoy usando el siguiente código: #include <stdio.h> #include <stdint.h> int64_t my_int = 999999999999999999; printf("This is my_int: %I64d\n", my_int); y recibo esta advertencia de compilación: warning: format ‘%I64d’ expects type ‘int’, but argument 2 has type ‘int64_t’ Lo …
298 c  stdint 

26
Mida fácilmente el tiempo transcurrido
Estoy tratando de usar time () para medir varios puntos de mi programa. Lo que no entiendo es por qué los valores en el antes y el después son los mismos. Entiendo que esta no es la mejor manera de perfilar mi programa, solo quiero ver cuánto tiempo toma algo. …
297 c++  c  linux  time  measurement 

3
¿Cuál es el operador >>> = en C?
Dado por un colega como un rompecabezas, no puedo entender cómo este programa C realmente compila y se ejecuta. ¿Qué es este >>>=operador y el extraño 1P1literal? He probado en Clang y GCC. No hay advertencias y la salida es "???" #include <stdio.h> int main() { int a[2]={ 10, 1 …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.