Resultados da pesquisa a pedido "language-lawyer"
Como o terminador de cadeia '\ 0' tem o mesmo valor que a constante inteira 0?
Eu tenho o seguinte código - #include <stdio.h> #define LENGTH 5 int main(){ char* ch[LENGTH] = {"Zero", "One", "Two", "Three", "Four"}; char* pc; char** ppc; for(int i=0; i<LENGTH; i++){ ppc = ch+i; pc = *ppc; while(*pc != 0){ printf("%c ", ...
É uma violação estrita de aliasing alias a struct como seu primeiro membro?
Código de amostra: struct S { int x; }; int func() { S s{2}; return (int &)s; // Equivalent to *reinterpret_cast<int *>(&s) }Eu acredito que isso é comum e considerado aceitável. O padrão garante que não haja preenchimento inicial na estrutura. ...
Os literais numéricos definidos pelo usuário podem ser imediatamente seguidos por um ponto? [duplicado]
Esta pergunta já tem uma resposta aqui: Erro de compilação ao usar um membro de um literal definido pelo usuário [/questions/38091427/compile-error-when-using-a-member-of-a-user-defined-literal] 1 respostaDesde o C ++ 11, foi possível ...
O C99 / C11 restringe o qualificador de tipo implica algo para funções sem definição?
Suponha que tenhamos uma declaração de função para a qual não temos acesso à sua definição: void f(int * restrict p, int * restrict q, int * restrict r);Como não sabemos como os ponteiros serão acessados, não podemos saber se uma chamada ...
A ordem de inicialização das variáveis de modelo constexpr (isto é, inicializadas constantemente) é garantida?
Dept.cppreference.com/w/cpp/language/initialization [http://en.cppreference.com/w/cpp/language/initialization]: Inicialização dinâmica não ordenada, que[sic] aplica-se apenas a membros de dados estáticos do modelo de classe (estático / ...
Argc pode ser zero em um sistema POSIX?
Dada a definição padrão para o programa principal: int main(int argc, char *argv[]) { ... }Em que circunstâncias podeargc ser zero em um sistema POSIX?
A marcação do ponteiro em C é indefinida de acordo com o padrão?
Algumas linguagens de tipo dinâmico usammarcação de ponteiro [https://en.wikipedia.org/wiki/Tagged_pointer]como uma maneira rápida de identificar ou restringir o tipo de tempo de execução do valor que está sendo representado. Uma maneira clássica ...
Dar aos dados um tipo eficaz conta como efeito colateral?
Suponha que eu tenha um pedaço de dados alocados dinamicamente: void* allocate (size_t n) { void* foo = malloc(n); ... return foo; }Desejo usar os dados apontados porfoo como um tipo especial,type_t. Mas eu quero fazer isso mais tarde, e não ...
Ordem das operações matemáticas comutativas
Eu tenho uma pergunta curiosa (perguntando eu mesma durante a leitura de um código bruto). Vamos olhar para a expressão: double a = c*d*e*2/3*f;onde c, d, e, f são variáveis inicializadas do tipodouble. A norma garante que seria tratada ...
Evitar estouros de buffer com get [duplicado]
Esta pergunta já tem uma resposta aqui: Por que a função gets é tão perigosa que não deve ser usada? [/questions/1694036/why-is-the-gets-function-so-dangerous-that-it-should-not-be-used] 11 respostasA declaração degets é: char * gets ( char * ...