Articles of estándares

Puntero base a una matriz de objetos derivados

Después de una pregunta hecha aquí hoy y una multitud de preguntas temáticas similares, estoy aquí para preguntar acerca de este problema desde el punto de vista de Stadard. struct Base { int member; }; struct Derived : Base { int another_member; }; int main() { Base* p = new Derived[10]; // (1) p[1].member = […]

¿Puede una implementación C conforme #define NULL ser algo loco?

Pregunto por la discusión que se ha provocado en este hilo . Tratar de tener una conversación seria con los comentarios bajo las respuestas de otras personas no es fácil ni divertido. Así que me gustaría escuchar lo que piensan nuestros expertos en C sin estar restringido a 500 caracteres a la vez. El estándar […]

¿El comstackdor puede reciclar las variables de puntero liberadas?

Se ha afirmado que un comstackdor puede reutilizar la variable de puntero para otro propósito después el realloc siendo liberado , por lo que no tiene garantía de que tenga el mismo valor que antes es decir void *p = malloc(42); uintptr_t address = (uintptr_t)p; free(p); // […] stuff unrelated to p or address assert((uintptr_t)p […]

Declarar el prototipo principal

¿Hay alguna razón por la que nunca veo prototipo de main declarado en progtwigs C, es decir: int main(int argc, char* argv[]); int main(int argc, char* argv[]) { return 0; } Siempre parecía inconsistente …

¿Por qué el comportamiento ‘i = ++ i + 1` no especificado?

Considere la siguiente cita de C ++ Standard ISO / IEC 14882: 2003 (E) (sección 5, párrafo 4): Excepto cuando se indique lo contrario, el orden de evaluación de operandos de operadores individuales y las subexpresiones de expresiones individuales, y el orden en que se producen los efectos secundarios, no se especifica. 53) Entre el […]

¿Se garantiza que ‘long’ será de al menos 32 bits?

Al leer el Estándar C ++, siempre he entendido que los tamaños de los tipos fundamentales integrales en C ++ son los siguientes: sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int) Deduje esto de 3.9.1 / 2: Hay cuatro tipos de entero con signo: “signed char”, “short int”, “int” y “long int.” En esta […]

Desprecio de la palabra clave estática … ¿no más?

En C ++, es posible usar la palabra clave static dentro de una unidad de traducción para afectar la visibilidad de un símbolo (ya sea una statement de función o variable). En n3092, esto estaba en desuso: Anexo D.2 [depr.static] El uso de la palabra clave estática está en desuso al declarar objetos en el […]

Espacios en las URL?

w3fools afirma que las URL pueden contener espacios: http://w3fools.com/#html_urlencode ¿Es esto cierto? ¿Cómo puede una URL contener un espacio no codificado? Tengo la impresión de que la línea de solicitud de una solicitud HTTP usa un espacio como delimitador, con el formato {the method}{space}{the path}{space}{the protocol} : GET /index.html http/1.1 Por lo tanto, ¿cómo puede […]

¿Debo usar char ** argv o char * argv en C?

Solo estoy aprendiendo C y me preguntaba cuál de estos debería usar en mi método principal. Hay alguna diferencia? Editar: Entonces, ¿cuál es más común de usar?

¿Cómo determinar la versión del estándar C ++ utilizado por el comstackdor?

¿Cómo se determina qué versión del estándar de C ++ implementa su comstackdor? Por lo que sé, a continuación están los estándares que he conocido: C ++ 03 C ++ 98