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.

9
¿Qué es más rápido: x << 1 ox << 10?
No quiero optimizar nada, lo juro, solo quiero hacer esta pregunta por curiosidad. Sé que en la mayoría del hardware hay un comando de ensamblaje de bit-shift (por ejemplo shl, shr), que es un solo comando. Pero, ¿importa (nanosegundos o CPU) cuántos bits desplaza? En otras palabras, ¿alguno de los …
83 c++  c  performance  cpu  low-level 

12
¿Es seguro devolver una estructura en C o C ++?
Lo que entiendo es que esto no debería hacerse, pero creo que he visto ejemplos que hacen algo como esto (el código de nota no es necesariamente correcto sintácticamente, pero la idea está ahí) typedef struct{ int a,b; }mystruct; Y luego aquí hay una función mystruct func(int c, int d){ …



6
#ifdef dentro de #define
Estoy tratando de escribir algo como esto: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endif ¿Hay alguna forma de definir COV_ONasí? Sé que lo que hice arriba está mal, ya que no puedo tener #ifdefdentro #define. ( #no es un personaje permitido en #define). Entonces, ¿hay alguna solución?
83 c  c-preprocessor 

3
¿Por qué anular el valor de retorno de free?
Estoy leyendo un libro ( Programación con hilos POSIX de Butenhof, 1997) que usa C, y me encontré con la siguiente línea: (void)free(data); Aquí, dataes solo un puntero a una estructura asignada, data = malloc(sizeof(my_struct_t)); ¿Por qué es el resultado de freeser lanzado a void? Desde mi entendimiento de C, …
82 c  casting  free  void  legacy-code 

10
¿Es seguro cambiar el nombre de argc y argv en la función principal?
Muchos programas utilizan nombres estándar para varios argumentos y matrices de cadenas. El prototipo de las principales miradas función como: int main(int argc, char *argv[]);. Pero, ¿rompería algo si elijo nombres personalizados para estas variables? P.ej int main(int n_of_args, char *args[]); En el contexto del compilador, todo está bien. Estas …
82 c++  c  main 

5
Conflicto entre un tutorial de Stanford y GCC
Según esta película (alrededor del minuto 38), si tengo dos funciones con las mismas vars locales, usarán el mismo espacio. Entonces, el siguiente programa debería imprimirse 5. Compilándolo con gccresultados -1218960859. ¿por qué? El programa: #include &lt;stdio.h&gt; void A() { int a; printf("%i",a); } void B() { int a; a …

2
Switch-case no se compilará después de comentar una línea no utilizada
Aquí está mi código: #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;netdb.h&gt; #include &lt;sys/types.h&gt; #include &lt;sys/socket.h&gt; #include &lt;arpa/inet.h&gt; int main (void) { struct addrinfo hints; memset (&amp;hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_DGRAM; hints.ai_flags = AI_CANONNAME; struct addrinfo *res; getaddrinfo ("example.com", "http", &amp;hints, &amp;res); printf ("Host: %s\n", …
82 c 

2
¿Por qué la declaración "2i;" ¿NO causa un error del compilador?
En lugar de 2*i, escribí descuidadamente 2i: int foo(int i) { 2i; return 2i; } Esperaba que el compilador detectara el error. Pero no lo hizo. Entonces, ¿es 2iuna declaración válida en C? Si es así, ¿qué hace? ¡Perplejo! Compilé usando gcc versión 5.3.0 y aquí está el resultado del …
82 c  syntax 



6
variables globales compartidas en C
¿Cómo puedo crear variables globales que se comparten en C? Si lo coloco en un archivo de encabezado, el vinculador se queja de que las variables ya están definidas. ¿Es la única forma de declarar la variable en uno de mis archivos C y poner manualmente externs en la parte …



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.