Articles of c99

¿Cómo implementar memmove en C estándar sin una copia intermedia?

Desde la página de manual en mi sistema: void * memmove (void * dst, const void * src, size_t len); DESCRIPCIÓN La función memmove () copia los bytes len de string src a string dst. Las dos cadenas pueden superponerse ; la copia siempre se hace de una forma no destructiva manera. Del estándar C99: […]

maquinas de estado tutoriales

Me pregunto si alguien sabe de algunos buenos tutoriales en Internet para desarrollar máquinas de estado. O libros electrónicos? Estoy empezando a trabajar en máquinas de estado y solo necesito algo general para comenzar.

¿El preprocesador C elimina comentarios o expande macros primero?

Considere esta estructura de código (horrible, terrible, no bueno, muy malo): #define foo(x) // commented out debugging code // Misformatted to not obscure the point if (a) foo(a); bar(a); He visto dos preprocesadores de comstackdores generar diferentes resultados en este código: if (a) bar(a); y if (a) ; bar(a); Obviamente, esto es algo malo para […]

¿El estándar C considera que hay uno o dos tipos de ‘struct uperms_entry’ en este encabezado?

¿Puede dar capítulo y versículo de uno de los tres estándares de C (preferiblemente C99 o C11) que indica si el siguiente archivo de encabezado tiene uno o dos tipos de struct uperms_entry en él? #ifndef UPERMS_CACHE_INCLUDE #define UPERMS_CACHE_INCLUDE typedef struct mutex MT_MUTEX; typedef struct uperms_cache { MT_MUTEX *cache_lock; int processing; struct uperms_entry *uperms_list; // […]

¿ANSI C o ISO C especifica qué debería ser -5% 10?

Me parece recordar que ANSI C no especificó qué valor se debe devolver cuando cualquier operando de un operador de módulo es negativo (solo que debe ser consistente). ¿Se especificó más tarde o siempre se especificó y recuerdo incorrectamente?

Rango de valor de retorno de la función principal

¿Qué dice el estándar sobre el rango principal de valores de retorno? Diga solo hasta 255? Porque int main(void){ return 256; } echo $? ; # out 0

¿Habilitar VLA (matrices de longitud variable) en MS Visual C ++?

¿Cómo puedo habilitar el uso de VLA, matrices de longitud variable como se define en C99, en MS Visual C ++ o eso no es posible en absoluto? Sí, sé que el estándar de C ++ se basa en C89 y que los VLA no están disponibles en C89 y por lo tanto no están […]

Tipo de datos booleanos C99?

¿Cuál es el tipo de datos booleano C99 y cómo usarlo?

¿Alternativa estándar al truco de GCC ## __ VA_ARGS__?

Existe un problema bien conocido con argumentos vacíos para macros variadas en C99. ejemplo: #define FOO(…) printf(__VA_ARGS__) #define BAR(fmt, …) printf(fmt, __VA_ARGS__) FOO(“this works fine”); BAR(“this breaks!”); El uso de BAR() arriba es de hecho incorrecto de acuerdo con el estándar C99, ya que se expandirá a: printf(“this breaks!”,); Tenga en cuenta la coma final […]

¿Qué significa punto (.) En un inicializador de estructura?

static struct fuse_oprations hello_oper = { .getattr = hello_getattr, .readdir = hello_readdir, .open = hello_open, .read = hello_read, }; No entiendo esta syntax C bien. Ni siquiera puedo buscar porque no conozco el nombre de la syntax. ¿Que es eso?