c

~x + ~y == ~(x + y) es siempre falso?

¿Este código siempre se evalúa como falso? Ambas variables son dos complemento firmado ints. ~x + ~y == ~(x + y) Siento q ... ecuación para encontrar las soluciones a la condición? ¿Cambiar uno por el otro causará un insidioso error en mi programa?

Con matrices, ¿por qué es el caso de que a[5] == 5[a]?

Como Joel señala en Stack Overflow podcast #34 , en C Programming Language (aka: K & R), se menciona esta propiedad de ... ys en C: a[5] == 5[a] Joel dice que es debido a la aritmética de puntero, pero todavía no entiendo. ¿por Qué a[5] == 5[a]?

Qué es ": -!!"en código C?

Me encontré con este extraño código macro en /usr/include/linux/kernel.h : /* Force a compilation error if condition is tru ... (e) (sizeof(struct { int:-!!(e); })) #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); })) ¿Qué hace :-!!?

¿Cuál es la diferencia entre printf() y puts () en C?

Sé que puedes imprimir con printf() y puts(). También puedo ver que printf() le permite interpolar variables y formatear. Es ... puts() simplemente una versión primitiva de printf(). ¿Debería usarse para cada printf() posible sin interpolación de cadena?

¿Por qué compila una función sin parámetros (en comparación con la definición de la función real)?

Acabo de encontrarme con el código C de alguien que me confunde en cuanto a por qué se está compilando. Hay dos puntos que no ... = func(10); printf("%d", bla); } ¿por Qué funciona esto? Lo he probado en un par de compiladores, y funciona bien.

Hay una diferencia entre foo(void) y foo() en C++ o C?

Considere estas dos definiciones de función: void foo() { } void foo(void) { } ¿hay alguna diferencia entre estos dos? Si no, ¿por qué está ahí el argumento void? Razones estéticas?

Sobrecarga de Macro en Número de Argumentos

Tengo dos macros FOO2 y FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... Quiero definir una nueva macro FOO de la sigui ... macro FOO (usando __VA_ARGS__ o de otra manera) para obtener el mismo efecto de enviar FOO(x,y) a FOO2, y FOO(x,y,z) a FOO3?

Adelante una invocación de un variadic función en C

En C, ¿es posible reenviar la invocación de una función variádica? Como en, int my_printf(char *fmt, ...) { fprintf(stde ... a de otra manera: en general, puede envolver alguna función variádica arbitraria sin modificar la definición de esa función.]

¿Por qué fluir fuera del final de una función no vacía sin devolver un valor no produce un error de compilador?

Desde que me di cuenta hace muchos años, que esto no produce un error por defecto (al menos en GCC), siempre me he preguntado ... ain() { char cstring[5]; printf( "the last char is: %c\n", cstring[stringSize()-1] ); return 0; } ...compilar.

¿Por qué tengo un error de segmentación cuando escribo en una cadena inicializada con " char * s "pero no"char s []"?

El siguiente código recibe fallo seg en la línea 2: char *str = "string"; str[0] = 'z'; printf("%s\n", str); Mientras que esto funciona perfectamente bien: char str[] = "string"; str[0] = 'z'; printf("%s\n", str); Probado con MSVC y GCC.

Redondeando hasta la siguiente potencia de 2

Quiero escribir una función que devuelva la siguiente potencia más cercana del número 2. Por ejemplo, si mi entrada es 789, l ... alida debería ser 1024. ¿Hay alguna manera de lograr esto sin usar ningún bucle, sino solo usando algunos operadores bitwise?

¿Cómo puedo recortar los espacios en blanco iniciales/finales de una manera estándar?

¿Existe un método limpio, preferiblemente estándar, para recortar los espacios en blanco iniciales y finales de una cadena en Do? Me gustaría rodar mi propio, pero creo que este es un problema común con una solución igualmente común.

Hay un reemplazo para unistd.h para Windows (Visual C)?

Estoy portando un programa de consola relativamente simple escrito para Unix a la plataforma Windows ( Visual C++ 8.0). Todos ... rande de la funcionalidad. Cambiar a otro compilador o entorno no es posible en el trabajo-estoy atascado con Visual Studio.

¿Cuál es el propósito de un solo signo de libra/hash (#) en su propia línea en el preprocesador de C/C++?

He estado mirando el código fuente de las bibliotecas Boost, y he notado que a menudo hay signos de libra individuales sin n ... arlo correctamente. ¿Cuál sería el efecto / efectos secundarios de tener signos aleatorios de libra / hash en todo el código?

advertencia: declaración implícita incompatible de la función incorporada 'xyz'

Estoy recibiendo varias de estas advertencias al compilar algunos binarios: warning: incompatible implicit declaration of b ... loc Estoy usando GCC 4.1.2: $ gcc --version gcc (GCC) 4.1.2 20080704 ¿Qué debo hacer para resolver estas advertencias?

¿Cómo genera este código el mapa de India?

Este código imprime el mapa de India. ¿Cómo funciona? #include <stdio.h> main() { int a,b,c; int count = 1; ... ULo-W\ Hq!WFs XDt!" [b+++21]; ) for(; a-- > 64 ; ) putchar ( ++c=='Z' ? c = c/ 9:33^b&1); return 0; }

¿Qué significa vacío en C, C++ y C#?

Buscando obtener los fundamentos sobre de dónde viene el término " vacío", y por qué se llama vacío. La intención de la pregunta es ayudar a alguien que no tiene experiencia en C, y de repente está mirando una base de código basada en C.

¿Cómo puedo establecer un punto de interrupción condicional en gdb, cuando char * x apunta a una cadena cuyo valor es igual a "hola"?

¿Puedo especificar que quiero que gdb se rompa en la línea x cuando char* x apunta a una cadena cuyo valor es igual a "hello"? Si es así, ¿cómo?

¿Cómo encuentro la ubicación del ejecutable en C? [duplicar]

Esta pregunta ya tiene una respuesta aquí: Encontrar la ruta del ejecutable actual sin /proc/self/exe ... r la ubicación (ruta completa) del programa ejecutado actualmente? (El problema con argv[0] es que no da la ruta completa.)

¿Cuáles son las diferencias entre poll y select?

Me refiero al estándar POSIX select y poll llamadas a la API del sistema C.